如何创建一个函数,使其通过遍历主数据框来创建数据框

时间:2019-12-27 11:26:41

标签: python pandas jupyter data-analysis

我有一个熊猫数据框。我想为每个状态创建单独的数据框,有些状态是多次

enter image description here

我知道一种方法:

GOA_filter = df['STATE/UT']=='GOA'
GOA_df = df[GOA_filter]

这样,我创建GOA的数据框, 我不想为每个州手动进行操作。 那么是否有可能创建一个函数来创建名称为“ state_df”的数据框? 像:GOA_df,HARYANA_df等...

2 个答案:

答案 0 :(得分:2)

这是一种方法,其想法是创建一个可以调用的数据帧字典。

df = pd.DataFrame(
    {
        "State": ["GOA", "AP", "UP", "AB", "Punjab"],
        "vals": np.random.randint(0, 500, size=5),
    }
)
dfs = {}
for state, frame in df.groupby('State'):
   dfs[state] = frame


print(dfs['GOA'])
  State  vals
0   GOA   227

答案 1 :(得分:1)

尝试像这样的东西:

import pandas as pd
from io import StringIO

data = """
STATE/UT
A
A
B
C
C
D
"""

df = pd.read_csv(StringIO(data), sep=',')
for x, y in df.groupby('STATE/UT'):
    print('df')
    print(y)

结果:

df
  STATE/UT
0        A
1        A
df
  STATE/UT
2        B
df
  STATE/UT
3        C
4        C
df
  STATE/UT
5        D