python-3.x - 熊猫在一列中有多个遮阳篷,如何拆分?
问题描述
我有一个看起来像...的数据框
或者
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 值正确分组。
所以预期的输出看起来像。
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
指示符,强制转换为布尔值,并numpy.where
用列名替换值和NaN
,传递给原始值DataFrame
并添加到原始值:
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
推荐阅读
- c++11 - 是什么导致了这段代码中的内存泄漏?
- typo3 - TYPO3 找不到 TypoScript 模板 - 自定义页面
- javascript - Google Maps Javascript API 在生产中抛出 InvalidKeyMapError
- django - 如何在 django 视图文件中打印数据?
- python-3.x - 在python中合并多个zip文件
- python - 如何用 plotly 绘制离散颜色
- groovy - 尝试使用 groovy DSL 替换文件中的字符串
- r - 计算一个表中的日期范围和另一个表中的天数标准的天数
- flutter - 颤振中的每日定期通知
- amazon-dynamodb - dynamodb 高效读取容量