从指定列的数组中插入两个值到pandas数据框中



我有一个数据框架和一个数组。数组有两个值,我想将数组中的值插入到数据框中。我想在索引'2020-12-31'和列'v2'和'v3'上插入数组值(所以我想用305替换300,用255替换250)。

import pandas as pd
import numpy as np

df=pd.DataFrame({'v0': [3,4,5,6,7,8,9,10,11,12,13,14],
'v1': [600, 550, 600, 600, 600, 600, 550, 500, 450, 350, np.NaN, np.NaN],
'v2': [350, 400, 450, 500, 450, 400, 450, 400, 350, 300, np.NaN, np.NaN],
'v3': [350, 350, 450, 500, 450, 400, 400, 300, 300, 250, np.NaN, np.NaN]},
index=pd.date_range('2020-03-31', '2021-02-28', freq='M'))
array=np.array([305, 255])

使用DataFrame.loc与列名称列表,它工作,因为相同的长度数组:

df.loc['2020-12-31', ['v2','v3']] = array
print (df)
v0     v1     v2     v3
2020-03-31   3  600.0  350.0  350.0
2020-04-30   4  550.0  400.0  350.0
2020-05-31   5  600.0  450.0  450.0
2020-06-30   6  600.0  500.0  500.0
2020-07-31   7  600.0  450.0  450.0
2020-08-31   8  600.0  400.0  400.0
2020-09-30   9  550.0  450.0  400.0
2020-10-31  10  500.0  400.0  300.0
2020-11-30  11  450.0  350.0  300.0
2020-12-31  12  350.0  305.0  255.0
2021-01-31  13    NaN    NaN    NaN
2021-02-28  14    NaN    NaN    NaN

最新更新