Python 在数据帧内连接列表列
我在pandas中有一个数据框,我的一列是一组列表;但是,列中的某些列表的元素比其他列表的元素多: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' 我
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当然,我分享的不会单独改变数据帧,这只是一个级数法,这能回答你的问题吗?还有一个问题:这能回答你的问题吗?还有一个问题: