繁体   English   中英

如何按列名过滤值,然后将具有相同值的行提取到另一个CSV文件? Python /熊猫

[英]How to filter values by Column Name and then extract the rows that have the same value to another CSV file? Python/Pandas

我有一个带有4列的pandas DataFrame,第一列是“ ID NUMBER”。 我正在尝试过滤“ ID NUMBER”并将相同的值捆绑在一起。 之后,我想将每个具有相同值的名称提取到具有相应名称的另一个csv文件中。

数据框:

     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'))

应该做你想做的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM