首页 > 解决方案 > 如何在某个索引处将 numpy 数组值添加到数据框?

问题描述

我有一个df包含 200 行的数据框和my_array包含 15 个值的 numpy 数组。

my_array = [41892.79355875, 40239.97933262, 39466.32169404, 38416.39545664,
            40012.3803004, 41135.45946026, 43084.18917943, 44825.08405799,
            44066.70603561, 46636.34415037, 45855.25783352, 45863.87118957,
            44697.45547342, 48065.5708295, 47931.83508874]

当我将 的值添加my_arraydf新列下column_2时,15 个值将添加到 的前 15 行中df

df['column_2'] = pd.DataFrame(my_array, columns=['column_2'])

如何让代码将 的值添加my_array到 的最后15 行df

标签: pythondataframenumpy-ndarray

解决方案


现在另一个问题是您还删除了该列的所有其他值,您可能不会设置 aDataFrame而只是将数组设置为新值。

要在特定索引处设置列中的值,请使用df.loc[df.index[#], 'NAME']

import numpy as np
import pandas as pd

df = pd.DataFrame([[1, 2] for _ in range(100)], columns=['column_1', 'column_2'])
my_array = np.array([41892.79355875, 40239.97933262, 39466.32169404, 38416.39545664,
                     40012.3803004, 41135.45946026, 43084.18917943, 44825.08405799,
                     44066.70603561, 46636.34415037, 45855.25783352, 45863.87118957,
                     44697.45547342, 48065.5708295, 47931.83508874])

df.loc[df.index[-15:], 'column_2'] = my_array

print(df)
    column_1      column_2
0          1      2.000000
1          1      2.000000
2          1      2.000000
3          1      2.000000
4          1      2.000000
..       ...           ...
95         1  45855.257834
96         1  45863.871190
97         1  44697.455473
98         1  48065.570830
99         1  47931.835089

推荐阅读