根据第一点的内容从现有DF创建一个新的Pandas DF

时间:2019-11-29 15:45:39

标签: python pandas

我正在尝试根据另一个数据框的内容创建一个新的数据框。 本质上,我是将CSV文件导入为数据透视表,但随后我想将其拆分为几个单独的数据框,并可以选择导出到其他CSV或JSON

内容基本上是

Region,Name,utilization,capacity
North,Westfield,10,20
North,ShadyAcres,100,300
South,Chapelton,30,300
South,Spinney,10,40
Midlands,oakfields,10,15
Midlands,chestfords,14,20

我基本上想将其剥离为一个单独的数据帧,仅包含

Name,Utilization,Capacity

根据“地区”列,我尝试了

df.[northregion] = df.region == 'North'

当我创建新数据框时确实根据内容确定了区域

north = df.pivot_table(index['northregion] etc...

它只是将True False插入整个框架中

1 个答案:

答案 0 :(得分:2)

使用DataFrame.groupby

df_Region={i:group for i,group in df.groupby('Region')}

或如耶斯拉尔建议的那样:

df_Region=dict(tuple(df.groupby('Region')))

for Region in df_Region:
    print(f'df[{Region}]')
    print(df_Region[Region])
    print('-'*50)


df[Midlands]
     Region        Name  utilization  capacity
4  Midlands   oakfields           10        15
5  Midlands  chestfords           14        20
--------------------------------------------------
df[North]
  Region        Name  utilization  capacity
0  North   Westfield           10        20
1  North  ShadyAcres          100       300
--------------------------------------------------
df[South]
  Region       Name  utilization  capacity
2  South  Chapelton           30       300
3  South    Spinney           10        40
--------------------------------------------------    

这将创建一个DataFrame字典,该字典可由Region列的值访问


您可以执行以下操作来创建特定的数据框:

df[df['Region']=='North']