Python 在数据帧内连接列表列

Python 在数据帧内连接列表列,python,pandas,list,dataframe,Python,Pandas,List,Dataframe,我在pandas中有一个数据框,我的一列是一组列表;但是,列中的某些列表的元素比其他列表的元素多: df['Name'].head() 输出: 0 ['Andrew', '24'] 1 ['James'] 2 ['Billy', '19', 'M'] 3 ['Grace', '42'] 4 ['Amy'] 我是否可以将每个列表中的每个元素连接在一起,同时仍保持df 期望输出: 0 'Andrew24' 1 'James' 2 'Billy19M' 3 'Grace42' 4 'Amy' 我

我在pandas中有一个数据框,我的一列是一组列表;但是,列中的某些列表的元素比其他列表的元素多:

df['Name'].head()
输出:

0 ['Andrew', '24']
1 ['James']
2 ['Billy', '19', 'M']
3 ['Grace', '42']
4 ['Amy']
我是否可以将每个列表中的每个元素连接在一起,同时仍保持df

期望输出:

0 'Andrew24'
1 'James'
2 'Billy19M'
3 'Grace42'
4 'Amy'
我尝试了很多不同的东西;我得到的最接近的结果是使用下面的剪报,但这将所有列表连接到了每条记录中:

def concatenate_list_data(list):
    result= ''
    for element in list:
       result += str(element)
    return result
df['Name'] = concatenate_list_data(df['Name'])`
试试这个:

df['Name'].apply(lambda x: ''.join(x)
输出:

0    Andrew24
1       James
2    Billy19M
3     Grace42
4         Amy
Name: Name, dtype: object
试试这个:

df['Name'].apply(lambda x: ''.join(x)
输出:

0    Andrew24
1       James
2    Billy19M
3     Grace42
4         Amy
Name: Name, dtype: object


Pandas为此提供了一种方法:
df['Name'].str.join(“”)

Pandas为此提供了一种方法:
df['Name'].str.join(“”)
或干脆
df['Name'].agg('.join)
这是有效的。非常感谢你!为什么要在Pandas直接提供的功能上使用它?或者干脆
df['Name'].agg('''.join)
。非常感谢你!为什么要在Pandas直接提供的功能上使用它…?我无法改变这一点anything@AndrewVitek真奇怪,你得到了什么结果?在将结果分配回数据帧之前,是否尝试打印结果?您可能希望将该列重新定义为
df['Name']=df['Name'].str.join(“”)
我不确定该函数是否默认为
inplace=True
behavior@CeliusStingher当然,我分享的不会单独改变数据帧,这只是一个系列的方法,我无法改变anything@AndrewVitek真奇怪,你得到了什么结果?在将结果分配回数据帧之前,是否尝试打印结果?您可能希望将该列重新定义为
df['Name']=df['Name'].str.join(“”)
我不确定该函数是否默认为
inplace=True
behavior@CeliusStingher当然,我分享的不会单独改变数据帧,这只是一个级数法,这能回答你的问题吗?还有一个问题:这能回答你的问题吗?还有一个问题: