在现有数据框中,如何添加一个包含新值的列,但从特定索引中抛出这些新值并增加数据框的索引大小?
如本例所示,将索引 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/