如何融化pd.DataFrame来组织数据? (包括玩具示例)
How to melt the pd.DataFrame to organize the data? (toy example included)
问题
- 我很想知道如何将下面提供的玩具示例中的
data_df
融化到 desired_df
。
import pandas as pd
data_df = pd.DataFrame(data = [['FR','Aug',100], ['FR','Sep',170], ['FR','Oct',250],
['KR','Aug',9], ['KR','Sep',12],['KR','Oct',19],
['US','Aug',360], ['US','Sep',500], ['US','Oct',700]],
columns = ['country','time','covid19'])
data_df
>>> country time covid19
0 FR Aug 100
1 FR Sep 170
2 FR Oct 250
3 KR Aug 9
4 KR Sep 12
5 KR Oct 19
6 US Aug 360
7 US Sep 500
8 US Oct 700
- 我想要的输出
desired_df
如下,国家名称 columns
,时间 index
,数据框中的 Covid 19 患者人数 values
。
desired_df
>>> FR KR US
Aug 100 9 360
Sep 170 12 500
Oct 250 19 700
- 我认为
pd.melt
会有所帮助,但它没有按我的意愿创建索引和列。
尝试 pivot
:
data = data_df.pivot(index = 'time', columns = 'country')
print(data)
给出:
country FR KR US
time
Aug 100 9 360
Oct 250 19 700
Sep 170 12 500
索引按字母顺序排列。根据需要重新排序。为了按日历顺序排列它们,我建议 Brad Solomon 对 的回答,它使用 pd.Categorical
.
问题
- 我很想知道如何将下面提供的玩具示例中的
data_df
融化到desired_df
。
import pandas as pd
data_df = pd.DataFrame(data = [['FR','Aug',100], ['FR','Sep',170], ['FR','Oct',250],
['KR','Aug',9], ['KR','Sep',12],['KR','Oct',19],
['US','Aug',360], ['US','Sep',500], ['US','Oct',700]],
columns = ['country','time','covid19'])
data_df
>>> country time covid19
0 FR Aug 100
1 FR Sep 170
2 FR Oct 250
3 KR Aug 9
4 KR Sep 12
5 KR Oct 19
6 US Aug 360
7 US Sep 500
8 US Oct 700
- 我想要的输出
desired_df
如下,国家名称columns
,时间index
,数据框中的 Covid 19 患者人数values
。
desired_df
>>> FR KR US
Aug 100 9 360
Sep 170 12 500
Oct 250 19 700
- 我认为
pd.melt
会有所帮助,但它没有按我的意愿创建索引和列。
尝试 pivot
:
data = data_df.pivot(index = 'time', columns = 'country')
print(data)
给出:
country FR KR US
time
Aug 100 9 360
Oct 250 19 700
Sep 170 12 500
索引按字母顺序排列。根据需要重新排序。为了按日历顺序排列它们,我建议 Brad Solomon 对 pd.Categorical
.