Python 熊猫应用于未知列
我有以下数据帧:Python 熊猫应用于未知列,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有以下数据帧: position a_0 a_1 a_2 a_3 a_4 new_value 2 10 13 100 3 12 16 13 120 2 14 12 140 4
position a_0 a_1 a_2 a_3 a_4 new_value
2 10 13 100
3 12 16 13 120
2 14 12 140
4 15 11 16 16 150
我想创建以下内容:
position a_0 a_1 a_2 a_3 a_4 new_value
2 10 13 100 100
3 12 16 13 120 120
2 14 12 140 140
4 15 11 16 16 150 150
基本上,将索引位置的每一行设置为等于新值。
理想情况下不使用for循环
困难在于引用不同的列为每行设置一个值。我唯一的想法是将原始数据帧分解成更小的数据帧(基于位置
的值),然后只使用应用
函数
任何其他想法都会非常有用
谢谢
从你的数据中不清楚空白单元格是<代码> NP.NAN/COD>或空字符串<代码> '/COD>,还有什么数据类型。打印(df.to_dict())
可能会更好。也就是说,让我们假设这些是空字符串'
:
输出:
position a_0 a_1 a_2 a_3 a_4 new_val
0 2 10 13 100.0 100
1 3 12 16 13.0 120 120
2 2 14 12 140.0 140
3 4 15 11 16.0 16 150 150
请将数据添加为文本,而不是图像。不确定如何保持表格格式?是的,至少在您的情况下,可以执行print(df)
和复制/粘贴。您还可以执行打印(df.to_dict())
…这不是真实的数据。这是一个模拟的例子。无法共享数据。我希望那还可以?一般来说也可以。专门为……服务。你不需要分享你的真实数据。你所拥有的应该是好的,即使是csv格式。令人惊讶的是,你能解释一下代码中发生的事情的机制吗?特别是在np.where语句s.eq(“”).cumsum(1).eq(1)
mask中,第一个NaN
出现在一行中,请打印出来查看详细信息<代码>np。其中
检查条件,如果为真
,则选择第一个,否则选择第二个。
position a_0 a_1 a_2 a_3 a_4 new_val
0 2 10 13 100.0 100
1 3 12 16 13.0 120 120
2 2 14 12 140.0 140
3 4 15 11 16.0 16 150 150