我有三个数据框,分别是男性,女性,变性人
示例数据帧
df_Male
continent avg_count_country avg_age
Asia 55 5
Africa 65 10
Europe 75 8
df_Female
continent avg_count_country avg_age
Asia 50 7
Africa 60 12
Europe 70 0
df_Transgender
continent avg_count_country avg_age
Asia 30 6
Africa 40 11
America 80 10
现在我像下面这样连接
frames = [df_Male, df_Female, df_Transgender]
df = pd.concat(frames, keys=['Male', 'Female', 'Transgender'])
正如你所看到的America
存在于df_transgender
,同样明智的欧洲存在于df_Male
和df_Female
所以我必须把它浓缩成下面的样子,但不是手动的,因为有很多行
continent avg_count_country avg_age
Male 0 Asia 55 5
1 Africa 65 10
2 Europe 75 8
3 America 0 0
Female 0 Asia 50 7
1 Africa 60 12
2 Europe 70 0
3 America 0 0
Transgender 0 Asia 30 6
1 Africa 40 11
2 America 80 10
3 Europe 0 0
所以对于其他continent
值avg_count_country
和avg_age
应该是0
利用^{} ,对@jpp的答案稍加修改就可以避免手动操作索引:
你可以重新索引一下。你知道吗
df
现在是:如果你想要另一个数字索引,那么你可以:
df.groupby(df.index).cumcount()
对每组中的值进行编号。你知道吗可以在连接之前添加“性别”列。你知道吗
我们使用Categorical Data和
groupby
来计算笛卡尔积。这也会带来性能上的好处。你知道吗相关问题 更多 >
编程相关推荐