Python 如何按列名筛选值,然后将具有相同值的行提取到另一个CSV文件?蟒蛇/熊猫
我有一个有4列的熊猫数据框,第一列是“ID号”。我试图过滤“ID号”,并将相同的值捆绑在一起。之后,我想将每个具有相同值的文件提取到一个不同的csv文件中,并使用其受尊重的名称 数据帧:Python 如何按列名筛选值,然后将具有相同值的行提取到另一个CSV文件?蟒蛇/熊猫,python,python-2.7,csv,pandas,Python,Python 2.7,Csv,Pandas,我有一个有4列的熊猫数据框,第一列是“ID号”。我试图过滤“ID号”,并将相同的值捆绑在一起。之后,我想将每个具有相同值的文件提取到一个不同的csv文件中,并使用其受尊重的名称 数据帧: ID Number col2 col3 DATE 0 111 0.5 -0.6 20160104 1 118 -0.1 -0.6 20160104 2 11D
ID Number col2 col3 DATE
0 111 0.5 -0.6 20160104
1 118 -0.1 -0.6 20160104
2 11D 0.3 -1.1 20160104
3 111 -0.7 -0.9 20150102
***Output I need:***
Number ID col2 col3 DATE
0 111 0.5 -0.6 20160104
1 111 -0.7 -0.9 20150102
我试图做一些事情,但是我找不到任何关于如何过滤列,然后在线提取的内容。谢谢大家! 您可以将
duplicated
与param一起使用keep=False
,这样它会为所有重复的行返回True
,并屏蔽df:
In [16]:
df[df['ID Number'].duplicated(keep=False)]
Out[16]:
ID Number col2 col3 DATE
0 111 0.5 -0.6 20160104
3 111 -0.7 -0.9 20150102
对于第二部分,您可以执行以下操作:
gp = df[df['ID Number'].duplicated(keep=False)].groupby('ID Number')
gp.apply(lambda x: x.to_csv(str(x.name) + '.csv')
编辑
实际上,如果您只是想将具有相同ID号的所有行写入命名的csv,那么:
df.groupby('ID Number').apply(lambda x: x.to_csv(str(x.name) + '.csv'))
应该做你想做的事你可以将
duplicated
与param一起使用keep=False
,这样它会为所有重复的行返回True
,并屏蔽df:
In [16]:
df[df['ID Number'].duplicated(keep=False)]
Out[16]:
ID Number col2 col3 DATE
0 111 0.5 -0.6 20160104
3 111 -0.7 -0.9 20150102
对于第二部分,您可以执行以下操作:
gp = df[df['ID Number'].duplicated(keep=False)].groupby('ID Number')
gp.apply(lambda x: x.to_csv(str(x.name) + '.csv')
编辑
实际上,如果您只是想将具有相同ID号的所有行写入命名的csv,那么:
df.groupby('ID Number').apply(lambda x: x.to_csv(str(x.name) + '.csv'))
应该做你想做的事实际上,你只是想将每个唯一的ID号写入一个新的csv吗?如果是这样的话,那么
df.groupby('ID Number').apply(lambda x:x.to_csv(str(x.name)+'.csv')
应该有效。实际上,您只是想将每个唯一的ID号写入一个新的csv吗?如果是这样的话df.groupby('ID Number').apply(lambda x:x.to_csv(str(x.name)+'.csv'))
应该适用于编辑后的第二部分,我在哪里可以指定保存这些文件的输出路径?很抱歉,您想要的是类似df.groupby('ID Number')。apply(lambda x:x.to_csv(r'c:\output\'+str(x.name)+'.csv'))
或者您可以定义一个输出路径变量path='c:/my_output_folder/',然后执行
df.groupby('ID Number')。应用(lambda x:x.to_csv(path+str(x.name)+'.csv'))`是的,您提供的代码工作得很好!感谢您的帮助!对于编辑后的第二部分,我在哪里可以指定保存这些文件的输出路径?很抱歉,您需要的是类似df.groupby('ID Number')。apply(lambda x:x.to_csv(r'c:\output\'+str(x.name)+'.csv'))
或者您可以定义一个输出路径变量path='c:/my_output_folder/',然后执行
df.groupby('ID Number')。apply(lambda x:x.to_csv(path+str(x.name)+'.csv')`是的,您提供的代码工作得很好!感谢您的帮助!