python - 将特定单元格中的值拆分为数据框中的行
问题描述
我正在尝试将数据框操作为输出数据框格式。特定单元格中有多个值,以“,”分隔。当我使用.stack()
将多个值转换为行时,剩余的空单元格将填充NaN
. 有没有通用的解决方案pandas
来处理这个问题?
输入数据框:
x1 y1 x2 x3 x4
abc x or y v1,v2,v3 l1,l2,l3 self
abc z no1,no2,no3 e1,e2,e3 self
输出数据框:
x1 y1 x2 x3 x4
abc x v1 l1 self
v2 l2
v3 l3
y v1 l1 self
v2 l2
v3 l3
abc z no1 e1 self
no2 e2
no3 e3
解决方案
df.set_index(df.index).apply(lambda x: x.str.split(",").apply(pd.Series).stack()).reset_index(drop=True).fillna("")
输出:
x1 x2 x3 x4
0 abc v1 11 self
1 v2 12
2 v3 13
3 abc no1 e1 self
4 no2 e2
5 no3 e3
推荐阅读
- c# - 当我使用 Invoke 到我想使用的方法时,我不能再调用它了?
- python - 调整窗口大小时如何调整布局?
- c# - 通过将状态存储到作用域局部变量中来避免关闭快速路径
- database - 这种可变长度日期编码格式是什么?
- github - 如何在 GitHub 上设置文件以供下载?
- c++ - 如何在 constexpr 中进行编译时错误检查?
- python - 为什么当输入到下一个变换时 GroupIntoBatches 输出会被细分
- ios - 如果不是从 xcode 运行,iOS 应用程序缺少 DYLD
- matplotlib - 如何使用 Embed set_image 将图像从 MatPlotlib 嵌入到 Discord.py 而不存储图像?
- javascript - React-Native:仅在下一个动作/重新渲染时影响视图的状态变化?