Sar*_*rah 27 python dataframe pandas
我有一个大型数据集,列出了全国不同地区的竞争产品.我希望通过使用这些新数据帧名称中的列值的迭代过程将此数据帧拆分为基于该区域的其他几个数据帧,以便我可以单独使用每个数据框 - 例如,按价格对每个区域中的信息进行排序以了解每个市场的情况如何.我已经给出了以下数据的简化版本:
Competitor Region ProductA ProductB
Comp1 A £10 £15
Comp1 B £11 £16
Comp1 C £11 £15
Comp2 A £9 £16
Comp2 B £12 £14
Comp2 C £14 £17
Comp3 A £11 £16
Comp3 B £10 £15
Comp3 C £12 £15
Run Code Online (Sandbox Code Playgroud)
我可以使用以下内容创建区域列表:
region_list=df['Region'].unique().tolist()
Run Code Online (Sandbox Code Playgroud)
我希望在一个产生大量数据帧的迭代循环中使用它,例如
df_A :
Competitor Region ProductA ProductB
Comp1 A £10 £15
Comp2 A £9 £16
Comp3 A £11 £16
Run Code Online (Sandbox Code Playgroud)
我可以使用代码手动为每个区域执行此操作
df_A=df.loc[df['Region']==A]
Run Code Online (Sandbox Code Playgroud)
但实际情况是,这个数据集有很多区域会使这段代码繁琐.有没有办法创建一个可以复制它的迭代循环?有一个类似的问题,询问有关拆分数据帧的问题,但答案并未说明如何根据每个列值标记输出.
我对Python很陌生并且还在学习,所以如果实际上有一种不同的,更明智的方法来解决这个问题,我会非常乐于接受建议.
max*_*moo 45
不同值的子集称为a groupby,如果只是想通过循环遍历组for,则语法为:
for region, df_region in df.groupby('Region'):
print(df_region)
Competitor Region ProductA ProductB
0 Comp1 A £10 £15
3 Comp2 A £9 £16
6 Comp3 A £11 £16
Competitor Region ProductA ProductB
1 Comp1 B £11 £16
4 Comp2 B £12 £14
7 Comp3 B £10 £15
Competitor Region ProductA ProductB
2 Comp1 C £11 £15
5 Comp2 C £14 £17
8 Comp3 C £12 £15
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34063 次 |
| 最近记录: |