将常量numpy数组值分配给pandas dataframe列

时间:2017-10-16 15:42:37

标签: python arrays pandas numpy

我想将常量numpy数组值分配给pandas dataframe列。

以下是我的尝试:

import pandas as pd
import numpy as np

my_df = pd.DataFrame({'col_1': [1,2,3], 'col_2': [4,5,6]})
my_df['new'] = np.array([]) # did not work
my_df['new'] = np.array([])*len(df) # did not work

这是有效的:

my_df['new'] = my_df['new'].apply(lambda x: np.array([]))

我很好奇为什么它适用于简单的标量,但不适用于numpy数组。是否有更简单的方法来分配numpy数组值?

1 个答案:

答案 0 :(得分:2)

您的“新”列将包含数组,因此它必须是对象类型列。

初始化它的最简单方法是:

my_df = pd.DataFrame({'col_1': [1,2,3], 'col_2': [4,5,6]})
my_df['new']=None

然后您可以根据需要填写它。例如:

for index,(a,b,_)  in my_df.iterrows():
    my_df.loc[index,'new']=np.arange(a,b)
#     
#    col_1  col_2        new
# 0      1      4  [1, 2, 3]
# 1      2      5  [2, 3, 4]
# 2      3      6  [3, 4, 5]