[英]create multiple new dataframes based on an existing data frames column in python
我有一个熊猫数据框df
,它有4列和很多行。
我想基于数据框架的列之一的值创建5个不同的数据框架。 我所指的列称为color
。
color
具有5个唯一值: red
, blue
, green
, yellow
, orange
。
我想做的是5个新数据框中的每一个都应包含所有具有color
值的行。 例如, df_blue
应该具有所有行和列,而在其他数据框中, color
列中的值是蓝色。
我的代码如下:
# create 5 new data frames
df_red = []
df_blue= []
df_green= []
df_yellow= []
df_orange= []
for i in range(len(df)):
if df['color'] == "blue"
df_blue.append(df)
# i would do if-else statements to satisfy all 5 colors
我觉得我缺少一些逻辑...有什么建议或意见吗?
谢谢!
您需要使用groupby
。 下面的代码片段创建一个示例DataFrame并将其转换为字典,其中颜色是键,而匹配的数据帧是值:
df = pd.DataFrame({'color': ['red','blue','red','green','blue'],
'foo': [1,2,3,4,5]})
colors = {color: dfc for color,dfc in df.groupby('color')}
#{'blue': color foo
# 1 blue 2
# 4 blue 5,
# 'green': color foo
# 3 green 4,
# 'red': color foo
# 0 red 1
# 2 red 3}
我最终对每种颜色都做了这个。
blue_data = data[data.color =='blue']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.