Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python,如何从csv中获取唯一的行,但如何获取合并了哪些行(或行中的值)的记录?_Python_Pandas_Dataframe_Loops_Csv - Fatal编程技术网

使用python,如何从csv中获取唯一的行,但如何获取合并了哪些行(或行中的值)的记录?

使用python,如何从csv中获取唯一的行,但如何获取合并了哪些行(或行中的值)的记录?,python,pandas,dataframe,loops,csv,Python,Pandas,Dataframe,Loops,Csv,我有一个包含11列数据的CSV文件。前10个包含我希望保留唯一行的信息。最后一个包含此信息来源的文件名 我只想从前10行中获得唯一的行,并且有一个列出文件名的新的最后一列,或者有其他带有未标记文件名的列 例如: 可乐 可乐 可乐 可乐 可乐 菲尔曼 A. 1. NA NA NA 文件1 A. 1. NA NA NA 文件2 NA NA B NA NA 文件1 NA NA B NA NA 文件3 NA NA B NA NA 文件4 NA NA NA D 1. 文件3 您可以基于除文件名以外的所有列

我有一个包含11列数据的CSV文件。前10个包含我希望保留唯一行的信息。最后一个包含此信息来源的文件名

我只想从前10行中获得唯一的行,并且有一个列出文件名的新的最后一列,或者有其他带有未标记文件名的列

例如:

可乐 可乐 可乐 可乐 可乐 菲尔曼 A. 1. NA NA NA 文件1 A. 1. NA NA NA 文件2 NA NA B NA NA 文件1 NA NA B NA NA 文件3 NA NA B NA NA 文件4 NA NA NA D 1. 文件3
您可以基于除文件名以外的所有列
groupby
,然后使用
join
聚合文件名,以创建列,列出其他每一组不同列值的所有文件名:

df.groupby(
    df.columns.drop('Filname').to_list(),
    dropna=False)['Filname'].apply(', '.join).reset_index()
输出:

  Col1  Col2 Col3 Col4  Col10              Filname
0    a   1.0  NaN  NaN    NaN         File1, File2
1  NaN   NaN    b  NaN    NaN  File1, File3, File4
2  NaN   NaN  NaN    d    1.0                File3

您可以基于除文件名以外的所有列
groupby
,然后使用
join
聚合文件名,以创建列,列出其他每一组不同列值的所有文件名:

df.groupby(
    df.columns.drop('Filname').to_list(),
    dropna=False)['Filname'].apply(', '.join).reset_index()
输出:

  Col1  Col2 Col3 Col4  Col10              Filname
0    a   1.0  NaN  NaN    NaN         File1, File2
1  NaN   NaN    b  NaN    NaN  File1, File3, File4
2  NaN   NaN  NaN    d    1.0                File3

当我预览表格并对其进行管理时,最愚蠢的事情就是显示格式正确的表格。任何关于修复的建议都会很好。干杯,尝试在
之后添加一行,例如:
转到:
或者更好,以逗号分隔的代码编写csv,这样我们就可以复制和测试您到目前为止尝试了什么?当我预览表格时,愚蠢的事情会显示格式正确的表格,然后对它们进行管理。任何关于修复的建议都会很好。干杯,尝试在
之后添加一行额外的代码,例如:
转到:
或者更好,以逗号分隔的代码编写csv,这样我们就可以复制和测试您到目前为止尝试了什么?太棒了!非常感谢。我想我使用的是熊猫的旧版本,但我不愿意更新,因为团队中的其他人可能正在使用旧版本。我不得不从to_列表中删除“u”,但我无法让“dropna”正常工作(在这个版本的pandas中有bug),所以我将NaN替换为0(值不在数据中)。谢谢你的帮助,包括帮我整理问题。非常优雅的解决方案。干杯,太棒了!非常感谢。我想我使用的是熊猫的旧版本,但我不愿意更新,因为团队中的其他人可能正在使用旧版本。我不得不从to_列表中删除“u”,但我无法让“dropna”正常工作(在这个版本的pandas中有bug),所以我将NaN替换为0(值不在数据中)。谢谢你的帮助,包括帮我整理问题。非常优雅的解决方案。干杯