试图从现有列值创建列的熊猫

  • 本文关键字:创建 熊猫 python pandas
  • 更新时间 :
  • 英文 :


我有一个基于机场的pandas数据帧,它有一个包含值的类型列:small_airport,medium _ airport,大型航空端口

我需要将这些值提取到3个不同的列中,我有点卡住了。我尝试过各种排列:

data['small_airport'] = data[['type'] == 'small_airport']

但我什么都做不了。我在这里看到了几篇类似的帖子,但还没有完全理解答案,无法实施建议。如果我重复了问题,我很抱歉。

任何建议都将不胜感激!编辑:数据样本为:

id, type, name
652, small_airport, Total Rf
345, heliport, Aero B
654, large_airport, Lowell field

这是一个大学项目,简报指出:"类型"列包含机场类型的信息。将其提取到一个新列中,每个列对应机场类别

我希望这能有所帮助!

您可以使用data.groupby('type')然后进行聚合(请参阅此处((这对大多数目的最有用(,也可以使用data.pivot(index=..., columns='type', values=...)(请参阅这里((这是对您的问题的更准确的回答(。

使用pd.crosstab:

out = pd.concat([df, pd.crosstab(df.index, df['type'])], axis=1)
print(out)
# Output
name            type  large_airport  medium_airport  small_airport
0    A   small_airport              0               0              1
1    B   small_airport              0               0              1
2    C   large_airport              1               0              0
3    D  medium_airport              0               1              0

注意:如果您喜欢布尔值,请使用pd.crosstab(...).astype(bool)

设置:

data = {
'name': ['A', 'B', 'C', 'D'],
'type': ['small_airport', 'small_airport', 'large_airport', 'medium_airport']
}
df = pd.DataFrame(df)

最新更新