2024-05-23 17:41:20 发布
网友
我有这样一个数据框:
Col1 Col2 0 a Jack 1 a Jill 2 b Bob 3 c Cain 4 c Sam 5 a Adam 6 b Abel
我现在要做的是为第1列中的每个值合并第2列中的值,即,输出应如下所示:
Col1 Col2 0 a Jack, Jill, Adam 1 b Bob, Abel 2 c Cain, Sam
我怎样才能最好地解决这个问题?任何建议都会有帮助。提前谢谢!你知道吗
这里有一个不同的方法,试试看:
df.groupby("Col1").agg(lambda x: ', '.join(x.unique())).reset_index() Col1 Col2 0 a Jack, Jill, Adam 1 b Bob, Abel 2 c Cain, Sam
要记住的东西。如果您的数据集是这样的:
Col1 Col2 0 a Jack 1 a Jill 2 b Bob 3 c Cain 4 c Sam 5 a Adam 6 b Abel 7 a Adam 8 c Sam
您将得到以下输出:
df.groupby("Col1").agg(lambda x: ', '.join(x)).reset_index() Col1 Col2 0 a Jack, Jill, Adam, Adam 1 b Bob, Abel 2 c Cain, Sam, Sam
因此,通过使用unique,可以删除Col2中的重复项。 希望有帮助
unique
Col2
使用
df = df.groupby('Col1')['Col2'].apply(', '.join) print(df) Col1 a Jack, Jill, Adam b Bob, Abel c Cain, Sam Name: Col2, dtype: object
使用reset_index将Col1作为列而不是索引返回
reset_index
Col1
df = df.groupby('Col1')['Col2'].apply(', '.join).reset_index() print(df) Col1 Col2 0 a Jack, Jill, Adam 1 b Bob, Abel 2 c Cain, Sam
您也可以在其他similar answer中尝试以下操作:
new_df = df.groupby('Col1', as_index=False).agg(', '.join)
这里有一个不同的方法,试试看:
要记住的东西。如果您的数据集是这样的:
您将得到以下输出:
因此,通过使用
unique
,可以删除Col2
中的重复项。 希望有帮助使用
使用
reset_index
将Col1
作为列而不是索引返回您也可以在其他similar answer中尝试以下操作:
相关问题 更多 >
编程相关推荐