Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫应用于未知列_Python_Python 3.x_Pandas - Fatal编程技术网

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