将pandas中的数据帧从迭代列表转换为适当的列和行

2024-03-29 13:31:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个看起来像

Country | IndicatorName | Value
Spain   | Indicator1    | 3
Spain   | Indicator2    | 4
Germany | Indicator16   | 24
......

我想把它转换成一个带有IndicatorName列、Country行和值交叉点的数据帧

Country | Indicator 1 | Indicator 2 | Indicator 3 | ......
Spain   |     3       |     4       |   16        | ......
Germany |     23      |     232     |   232       | ......
.......

我正在尝试通过groupby([“IndicatorName”,“Value”]),但不确定如何继续

import pandas as pd
indicators = pd.read_csv("Indicators.csv")
indicators.groupbby(["IndicatorName","Value"])
.....

有没有合适的方法来处理这个问题,或者需要通过迭代来完成?你知道吗


Tags: csv数据valuecountryindicatorpd交叉点spain
1条回答
网友
1楼 · 发布于 2024-03-29 13:31:43

我不确定初始df格式,因为所需的df似乎有不同的值。你知道吗

下面的内容有用吗?你知道吗

df = pd.DataFrame({'Country' : ['Spain', 'Spain', 'Germany'],
                   'IndicatorName':['Indicator1', 'Indicator2', 'Indicator16'],
                  'Value':[3, 4, 24]
                  })


df.pivot(index = 'Country', columns='IndicatorName', values='Value').fillna(0)


IndicatorName   Indicator1  Indicator16     Indicator2
    Country             
    Germany            0.0        24.0              0.0
    Spain              3.0         0.0              4.0

相关问题 更多 >