在数据框中过滤项目迭代(使用FOR或任何其他)? [英] Filter item iteration in dataframe (with FOR or any other)?

查看:199
本文介绍了在数据框中过滤项目迭代(使用FOR或任何其他)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下数据框:

d = pd.DataFrame([['A', 1989, 100],
                  ['A', 1990, 200],
                  ['A', 2017, 100],
                  ['B', 1989, 500],
                  ['B', 1990, 200],
                  ['C', 1990, 200],
                  ['C', 19870, 400]],
                 columns=['Univers', 'year', 'amount'])



    Univer  year   amount
0       A   1989     100
1       A   1990     200
2       A   2017     100
3       B   1989     500
4       B   1990     200
5       C   1990     200
6       C  19870     400
.
.
.

我想通过 Univer 。我仅申请A d2 = d [d ['Univers'] =='A']

I would like to perform a filter by Univer. I applied only for A d2 = d[d['Univers']=='A']:

 Univers  year  amount
0       A  1989     100
1       A  1990     200
2       A  2017     100

现在,假设我在 Univers <中有一千个项目/ strong>列(及其在数据框中的相应位置),如何使用<$ c为 Univers 中的其余项目执行此操作$ c> FOR (或任何其他)?

Now, imagine I have a thousand of items in Univers column (and their corresponding ítems in the dataframe), how can I do this for the remaining items in Univers using a FOR (or any other)?

推荐答案

选项1

Univers 上执行 groupby ,因为您需要保存每个组。

Option 1
Perform a groupby on Univers, since you need to save each group.

for i, g in df.groupby('Univers'):
    g.to_csv('{}.csv'.format(i))

这会生成3个文件 -

This generates 3 files -

A.csv

  Univers  year  amount
0       A  1989     100
1       A  1990     200
2       A  2017     100 

B.csv

  Univers  year  amount
3       B  1989     500
4       B  1990     200 

C.csv

  Univers   year  amount
5       C   1990     200
6       C  19870     400   



< hr>

选项2

另一种选择是调用 pd.Series.unique 然后按此条件过滤 -


Option 2
Another alternative would be to call pd.Series.unique and then filter on this condition -

for v in df.Univers.unique():
    df[df.Univers == v].to_csv('{}.csv'.format(i))

同样的事情。您还可以使用查询 / eval 来执行过滤。

Which does the same thing. You can also use query/eval to perform filtering.

这篇关于在数据框中过滤项目迭代(使用FOR或任何其他)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆