Python数据框用n个元素的列表替换最后n行

标签 python pandas numpy dataframe

我有一个 2500 行的数据框。我试图用 n 个元素的列表替换数据框的最后 n 行。我举了一个例子来说明我的问题和我想要的

df = 
      A
0    10.5
1    10.5
2    10.5
3    10.5
4    10.5
5    10.5
6    10.5

我的新列表有两个元素要放置在底部两行。

op_res = [20.5, 30.5]

我的代码和当前输出:

df.loc[-2:,'A'] = pd.Series(op_res)
df = 
      A
0    10.5
1    10.5
2    10.5
3    10.5
4    10.5
5    nan
6    nan

我的代码可能有什么问题? 我的代码和当前输出:

df = 
      A
0    10.5
1    10.5
2    10.5
3    10.5
4    10.5
5    20.5
6    30.5

最佳答案

试试这个:

df.A.to_numpy()[-2:]=op_res
df
      A
0  10.5
1  10.5
2  10.5
3  10.5
4  10.5
5  20.5
6  30.5

代码中的问题:索引不匹配,因此当将其分配回来时,它将返回 nan,因为 pandas 分配将一如既往地匹配索引

pd.Series(op_res)
0    20.5
1    30.5
dtype: float64

原始 df 的索引

df.iloc[-2:,0] 
5    10.5
6    10.5
Name: A, dtype: float64

从上面我们知道索引[0,1]不能与索引[5,6]匹配,所以所有赋值都会返回nan

关于Python数据框用n个元素的列表替换最后n行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61297944/

相关文章:

python - 如何更改订单预览时的芯片建议?

python - numpy.tile 非整数次数

python - pandas 填充日期+多列

python - pandas findall() 可以返回 str 而不是 list 吗?

python - 如何将 mock_open 与 Python UnitTest 装饰器一起使用?

python - 如何使用日期时间索引从pandas数据框中的特定日期选择行

python - 在引用 pandas DataFrame 的下一个元素时省略循环

python - 使用不带链式索引的 ILOC

python - 如何获取列表中所有 NaN 的所有索引?

python - 使用碰撞 block 计算 pi 时如何防止快速移动的物体穿过静力学