python - 从特定索引向数据框添加新值?

标签 python pandas dataframe indexing concatenation

在现有数据框中,如何添加一个包含新值的列,但从特定索引中抛出这些新值并增加数据框的索引大小?

如本例所示,将索引 2 中的新值放入索引 6:

数据框:

df = pd.DataFrame({
        'Col1':[1, 1, 1, 1],
        'Col2':[2, 2, 2, 2]
    })
df

输出:

    Col1  Col2
0   1     2
1   1     2
2   1     2
3   1     2

新值:

new_values = [3, 3, 3, 3, 3]

期望的结果:

    Col1  Col2  Col3
0   1     2     NaN
1   1     2     NaN
2   1     2     3
3   1     2     3
4   NaN   NaN   3
5   NaN   NaN   3
6   NaN   NaN   3

最佳答案

首先创建一个新列表并添加总计为您要偏移的数字的 NaN 值。

然后做一个连接。

您可以在连接时设置系列名称,这将是新的列名称。

import pandas as pd
import numpy as np

df = pd.DataFrame({
        'Col1':[1, 1, 1, 1],
        'Col2':[2, 2, 2, 2]
    })

new_values = [3, 3, 3, 3, 3]

offset = 2 # set your offset here

new_values = [np.NaN] * offset + new_values # looks like [np.NaN, np.NaN, 3, 3, ... ]

new = pd.concat([df, pd.Series(new_values).rename('Col3')], axis=1) 

new 看起来像这样,

    Col1    Col2    Col3
0   1.0     2.0     NaN
1   1.0     2.0     NaN
2   1.0     2.0     3.0
3   1.0     2.0     3.0
4   NaN     NaN     3.0
5   NaN     NaN     3.0
6   NaN     NaN     3.0

关于python - 从特定索引向数据框添加新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74048194/

相关文章:

Python:解码问题(ascii)

python - Pandas、SciPy 或 NumPy 是否提供累积标准差函数?

Python 条形图和折线图,在一张图中包含组

python - Pandas 满足匹配条件的行的平均值

python - 在 Django 模型中过滤多对多字段

python - pandas DataFrame 中的操作

python - 使用 ix 或 iloc 检查 pandas DataFrame 中的特定值(在单元格中)是否为 NaN 不工作

python - 计算 Pandas 数据框设置的范围内的日期

python - Pandas 如何找到单元格的位置以字符串开头

python - 当你在 django 中没有定义 STATICFILES_DIR 时会发生什么?