python - Pandas 移动行值以匹配列名
问题描述
我有一个示例数据集,其中包含一组列名列表。在移动数据时,我让每一行在每一行中打印字母,如下所示。
我正在尝试移动每行的值以匹配任一列。我曾尝试这样做 pd.shift() 这样做,但没有取得太大的成功。我试图得到下面看到的。有什么想法吗?
import pandas as pd
df = pd.DataFrame({'A': list('AAAAA'),
'B': list('CBBDE'),
'C': list('DDCEG'),
'D': list('EEDF '),
'E': list('FFE '),
'F': list('GGF '),
'G': list(' G ')})
A B C D E F G
0 A C D E F G
1 A B D E F G
2 A B C D E F G
3 A D E F
4 A E G
后:
A B C D E F G
0 A C D E F G
1 A B D E F G
2 A B C D E F G
3 A D E F
4 A E G
解决方案
这是更多列表pivot
问题
s=df.mask(df=='').stack().reset_index()
s.pivot(index='level_0',columns=0,values=0)
Out[34]:
0 A B C D
level_0
0 A B C D
1 A NaN C NaN
2 A NaN C D
推荐阅读
- excel - Excel:如果n个单元格连续满足条件,有没有办法对n+1个单元格求和?
- python - 如何在 python 中使用 sklearn 回归器正确预测目标变量?
- javascript - React Hooks,useState 相关问题。如何更新对象的一个属性并保留其余属性
- r - 尝试在 R ggplot 中绘制模拟数据会在绘图左侧产生一个奇怪的灰色块,我该怎么办?
- html - 在 HTML 中设置导入元素的样式
- python - 函数转换 Matlab 到 Python 的问题
- log4j - Log4j 2 自定义附加程序
- system-verilog - SymbiYosys如何通过Induction?
- javascript - 在 Element UI 复选框组中呈现列表
- arrays - Excel从具有多个条目的列表中随机选择名称,并填写每组行不重复名称多次的列