我在python中使用pandas模块。在我的脚本中,我试图获取DataFrame的每个值并将它们转换为另一个DataFrame,每个值都被数字1替换(数字范围的n倍),如:
A B
a 1 2
b 2 3
为:
A B
a 1 1
a 1
b 1 1
b 1 1
b 1
问题是:这些都没有修复价值。我希望脚本得到一个"模型"由我创建并输出类似上述结果的内容。否则,DataFrame可以有1,2,3 ... 30列,与行相同。
答案 0 :(得分:0)
这是基于标准2D列表的解决方案。适应大熊猫的DataFrame非常简单:
lst = [['a',1,2,2], ['b',2,3,2], ['c',4,0,2]]
table = []
for cols in lst:
name, size = cols[0], max(cols[1:])
row = [[1]*col + [0]*(size-col) for col in cols[1:]]
table.extend(list(zip([name]*size, *row)))
以下是table
>>> from pprint import pprint
>>> pprint(table)
[('a', 1, 1, 1),
('a', 0, 1, 1),
('b', 1, 1, 1),
('b', 1, 1, 1),
('b', 0, 1, 0),
('c', 1, 0, 1),
('c', 1, 0, 1),
('c', 1, 0, 0),
('c', 1, 0, 0)]