没有找到解决我问题的办法。
在我的数据集中,我有一个气象事件专栏。我需要将它转换为多个数字列指示符。我在寻找快速解决方案

weather = pd.read_csv("weather.csv", parse_dates=[0])

事件列如下所示:
id                    Events
0                       Rain
...
1                       Rain
...
8                   Fog-Rain
9                  Rain-Snow

我需要将其转换为4个功能:
events = ['Rain','Snow','Fog','Thunderstorm']

每个可以取2个值-1或0。
我怎么能用熊猫呢?

最佳答案

str.get_dummies处理得非常干净:

import pandas as pd

events_list = ['Rain', 'Rain', 'Fog-Rain', 'Rain-Snow', 'Thunderstorm', 'Fog-Thunderstorm']

weather_df = pd.DataFrame(events_list, columns=['Events'])

print(weather_df)

输出:
             Events
0              Rain
1              Rain
2          Fog-Rain
3         Rain-Snow
4      Thunderstorm
5  Fog-Thunderstorm

我们使用str.get_dummies并将其连接到原始数据帧:
weather_df = pd.concat([weather_df, weather_df.Events.str.get_dummies(sep='-')], axis=1)
print(weather_df)

输出:
             Events  Fog  Rain  Snow  Thunderstorm
0              Rain    0     1     0             0
1              Rain    0     1     0             0
2          Fog-Rain    1     1     0             0
3         Rain-Snow    0     1     1             0
4      Thunderstorm    0     0     0             1
5  Fog-Thunderstorm    1     0     0             1

如果你愿意的话,可以很容易地删除原来的列。

关于python - Pandas 将列拆分为多个,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33707195/

10-12 18:10