当前位置:  开发笔记 > 编程语言 > 正文

pandas,如何按列值过滤数据帧

如何解决《pandas,如何按列值过滤数据帧》经验,为你挑选了2个好方法。

我有这样的DataFrame

>>> df
    id    name    score    subject
    0001   'bob'    100    'math'
    0001   'bob'     67    'science'
    0001   'bob'     63    'bio'
    0002  'jack'     67    'math'
    0002  'jack'     98    'science' 
    0002  'jack'     90    'bio'
    0003  'jack'     60    'math'
    0003  'jack'     78    'science' 
    0003  'rose'     87    'bio'

我想将每个id数据过滤到一个新的DataFrame中,并根据其id写入Excel文件.因此,上述df将被过滤到3个DataFrames它ids0001,0002并且0003,所有的DataFrames将被写入单独的Excel文件.



1> Tasos..:

首先,获取唯一ID值的列表

uniquevalues = np.unique(df[['id']].values)

然后迭代它并使用CSV文件中的这些ID导出每个数据帧

for id in uniquevalues:
    newdf = df[df['id'] == id]
    newdf.to_csv("dataframe "+id+".csv", sep='\t')

如果你只有这三个ID,那么你可以for手动传递并做同样的事情

newdf = df[df['id'] == "0001"]
newdf.to_csv("dataframe0001.csv", sep='\t')



2> Fabio Lamann..:

IIUC,在您的示例中,您可以通过以下方式过滤数据框id:

df1 = df[df['id'] == 0001]

和其他id值相同.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有