我有一个熊猫数据框。我想为每个状态创建单独的数据框,有些状态是多次
我知道一种方法:
GOA_filter = df['STATE/UT']=='GOA'
GOA_df = df[GOA_filter]
这样,我创建GOA的数据框, 我不想为每个州手动进行操作。 那么是否有可能创建一个函数来创建名称为“ state_df”的数据框? 像:GOA_df,HARYANA_df等...
答案 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