我这里有这张桌子,我想把“每日重症监护病房占用率”作为一个列,值在行下面。“每日医院入住率”也是如此。我该怎么做?我想要建立一个只有“每日重症监护病房入住率”、“每日医院入住率相同”的新数据框架,然后将这两个数据框架合并在一起,但这似乎并不是最好的方法,我肯定有更好的方法。
entity iso_code date indicator value
127422 United States USA 2020-07-15 Daily ICU occupancy 9245.0
127424 United States USA 2020-07-15 Daily hospital occupancy 33759.0
127426 United States USA 2020-07-16 Daily ICU occupancy 9797.0
127428 United States USA 2020-07-16 Daily hospital occupancy 38537.0
127430 United States USA 2020-07-17 Daily ICU occupancy 10700.0更新:只是为了更清楚我在寻找什么。我希望我的新数据表是这样的
entity iso_code date Daily ICU occupancy Daily hospital occupancy
127422 United States USA 2020-07-15 9245.0 33759.0
127426 United States USA 2020-07-16 9797.0 38537.0
127430 United States USA 2020-07-17 10700.0 38600.0 发布于 2022-04-02 18:06:50
您可以尝试使用枢轴来实现这一点。修改以下代码
df.pivot_table(index=['entity','iso_code'], columns='indicator',
values='value').reset_index()注我的答案是基于格式问题时复制到剪贴板。调整以适应您的用例。
indicator entity iso_code ICU occupancy hospital occupancy
0 2020-07-15 Daily 9245.0 33759.0
1 2020-07-16 Daily 9797.0 38537.0
2 2020-07-17 Daily 10700.0 NaN发布于 2022-04-03 00:26:48
df = pd.DataFrame({
'entity':[127422, 127424, 127426, 127428, 127430],
'iso_code':['United States', 'United States', 'United States', 'United States', 'United States'],
'date':['USA 2020-07-15', 'USA 2020-07-15', 'USA 2020-07-16', 'USA 2020-07-16', 'USA 2020-07-17'],
'indicator':['Daily ICU occupancy', 'Daily hospital occupancy', 'Daily ICU occupancy', 'Daily hospital occupancy', 'Daily ICU occupancy'],
'value':[9245.0, 33759.0, 9797.0, 38537.0, 10700.0]
})
print(df)
entity iso_code date indicator value
0 127422 United States USA 2020-07-15 Daily ICU occupancy 9245.0
1 127424 United States USA 2020-07-15 Daily hospital occupancy 33759.0
2 127426 United States USA 2020-07-16 Daily ICU occupancy 9797.0
3 127428 United States USA 2020-07-16 Daily hospital occupancy 38537.0
4 127430 United States USA 2020-07-17 Daily ICU occupancy 10700.0df = df.pivot(index=['iso_code', 'date'], columns='indicator', values='value').reset_index().reset_index(drop=True)
print(df)
indicator iso_code date Daily ICU occupancy \
0 United States USA 2020-07-15 9245.0
1 United States USA 2020-07-16 9797.0
2 United States USA 2020-07-17 10700.0
indicator Daily hospital occupancy
0 33759.0
1 38537.0
2 NaN

https://stackoverflow.com/questions/71719881
复制相似问题