[英]pandas multiple awnsers in one column, How to split?
我有一個看起來像...的數據框
或者
ConvertedComp LanguageWorkedWith
0 NaN C#;HTML/CSS;JavaScript
1 NaN JavaScript;Swift
2 NaN Objective-C;Python;Swift
3 NaN NaN
4 NaN HTML/CSS;Ruby;SQL
我怎樣才能將這些語言分開,以便每種語言都在自己的列中? 並用介於兩者之間的 nan 值正確分組。
以便預期的 output 看起來像。
ConvertedComp C# HTML/CSS python swift Ruby SQL JavaScript Objective-C
0 NaN C# HTML/CSS NaN NaN NaN Nan JavaScript NaN
1 NaN NaN NaN NaN Swift NaN NaN JavaScript NaN
2 NaN NaN NaN Python Swift NaN NaN NaN Objective-C
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN HTML/CSS NaN NaN Ruby SQL NaN NaN
使用Series.str.get_dummies
作為指標,並轉換為 boolean 和numpy.where
用列名和NaN
替換值,傳遞給DataFrame
並添加到 original:
mask = df.pop('LanguageWorkedWith').str.get_dummies(';').astype(bool)
df = df.join(pd.DataFrame(np.where(mask, mask.columns, np.nan),
columns=mask.columns,
index=df.index))
print (df)
ConvertedComp C# HTML/CSS JavaScript Objective-C Python Ruby SQL \
0 NaN C# HTML/CSS JavaScript NaN NaN NaN NaN
1 NaN NaN NaN JavaScript NaN NaN NaN NaN
2 NaN NaN NaN NaN Objective-C Python NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN HTML/CSS NaN NaN NaN Ruby SQL
Swift
0 NaN
1 Swift
2 Swift
3 NaN
4 NaN
假設您正在使用pd.read_csv
讀取數據,然后指定sep=";"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.