繁体   English   中英

如何通过拆分从数据框中的另一列创建 Pandas 数据框?

[英]How to create a Pandas dataframe from another column in a dataframe by splitting it?

我有以下源数据框

国家 有钱吗?
0 我们 是的
1 印度
2 印度 是的
3 我们 是的
4 我们 是的
5 印度
6 我们
7 印度

我需要将其转换为另一个数据框以绘制如下所示的条形图,以便轻松访问数据

每个国家的经济状况条形图

要创建的数据框如下所示。

国家 富有的 较差的
我们 3 1
印度 1 3

我是 Pandas 和探索性数据科学的新手。 请在这里帮忙

你可以试试pivot_table

df['Is Rich?'] = df['Is Rich?'].replace({'Yes': 'Rich', 'No': 'Poor'})
out = df.pivot_table(index='Country', columns='Is Rich?', values='Person', aggfunc='count')
print(out)

Is Rich?  Poor  Rich
Country
India        3     1
US           1     3

你可以这样做:

converted = df.assign(Rich=df['Is Rich?'].eq('Yes')).eval('Poor = ~Rich').groupby('Country').agg({'Rich': 'sum', 'Poor': 'sum'})

print(converted)
         Rich  Poor
Country            
India       1     3
US          3     1

但是,如果要将其绘制为条形图,则以下格式可能最适合使用seaborn类的绘图库:

plot_df = converted.reset_index().melt(id_vars='Country', value_name='No. of people', var_name='Status')
print(plot_df)
  Country Status  No. of people
0   India   Rich              1
1      US   Rich              3
2   India   Poor              3
3      US   Poor              1

然后,使用seaborn

import seaborn as sns

sns.barplot(x='Country', hue='Status', y='No. of people', data=plot_df)

结果图:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM