如何从python中的另一个数据帧向新数据帧赋值

2024-09-30 16:42:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我建立了一个新的数据框SimMean:

    columns = ['Tenor','5x16', '7x8', '2x16H']
    index = range(0,12)
    SimMean = pd.DataFrame(index=index, columns=columns)

    SimMean
       Tenor 5x16  7x8 2x16H
    0    NaN  NaN  NaN   NaN
    1    NaN  NaN  NaN   NaN
    2    NaN  NaN  NaN   NaN
    3    NaN  NaN  NaN   NaN
    4    NaN  NaN  NaN   NaN
    5    NaN  NaN  NaN   NaN
    6    NaN  NaN  NaN   NaN
    7    NaN  NaN  NaN   NaN
    8    NaN  NaN  NaN   NaN
    9    NaN  NaN  NaN   NaN
    10   NaN  NaN  NaN   NaN
    11   NaN  NaN  NaN   NaN

我有另一个数据帧fwdf:

^{pr2}$

现在我需要将fwdf中第12行到第23行的“Tenor”数据分配给新的数据帧SimMean。在

我用过

    SimMean.loc[0:11,'Tenor'] = FwdDf.loc [12:23,'Tenor']

但没用:

    SimMean
       Tenor 5x16  7x8 2x16H
    0   None  NaN  NaN   NaN
    1   None  NaN  NaN   NaN
    2   None  NaN  NaN   NaN
    3   None  NaN  NaN   NaN
    4   None  NaN  NaN   NaN
    5   None  NaN  NaN   NaN
    6   None  NaN  NaN   NaN
    7   None  NaN  NaN   NaN
    8   None  NaN  NaN   NaN
    9   None  NaN  NaN   NaN
    10  None  NaN  NaN   NaN
    11  None  NaN  NaN   NaN

我是新来的。谢谢你的帮助。谢谢


Tags: columns数据nonedataframeindexrangenanloc
1条回答
网友
1楼 · 发布于 2024-09-30 16:42:10

调用.values,这样就没有索引对齐问题:

In [35]:
SimMean.loc[0:11,'Tenor'] = FwdDf.loc[12:23,'Tenor'].values
SimMean

Out[35]:
         Tenor 5x16  7x8 2x16H
0   2018-01-01  NaN  NaN   NaN
1   2018-02-01  NaN  NaN   NaN
2   2018-03-01  NaN  NaN   NaN
3   2018-04-01  NaN  NaN   NaN
4   2018-05-01  NaN  NaN   NaN
5   2018-06-01  NaN  NaN   NaN
6   2018-07-01  NaN  NaN   NaN
7   2018-08-01  NaN  NaN   NaN
8   2018-09-01  NaN  NaN   NaN
9   2018-10-01  NaN  NaN   NaN
10  2018-11-01  NaN  NaN   NaN
11  2018-12-01  NaN  NaN   NaN

编辑

由于您的列实际上是datetime,因此您需要再次转换类型:

^{pr2}$

相关问题 更多 >