我尝试使用my_df1.loc函数向名为“my_df1”的数据框插入一个新行。但是在结果中,添加的新行具有NaN值
my_data = {'A':pd.Series([1,2,3]),'B':pd.Series([4,5,6]),'C':('a','b','c')}
my_df1 = pd.DataFrame(my_data)
print(my_df1)
my_df1.loc[3] = pd.Series([5,5,5])
显示的结果如下
A B C
0 1.0 4.0 a
1 2.0 5.0 b
2 3.0 6.0 c
3 NaN NaN NaN
所有NaN
的原因是my_df1.loc[3]
作为指数(A,B,C)
而pd.Series([5,5,5])
作为指数(0,1,2)
。当你做series1=series2
时,pandas只复制常见索引的值,因此结果。
要解决此问题,请按@ anky_91说,或者如果您已有系列,请使用其值:
my_df1.loc[3] = my_series.values
最后,我发现了如何将Series作为行或列添加到数据框中
my_data = {'A':pd.Series([1,2,3]),'B':pd.Series([4,5,6]),'C':('a','b', 'c')} my_df1 = pd.DataFrame(my_data)
打印(my_df1)
my_df1.loc [:,'D'] = pd.Series([5,5,5],index = my_df1.index)print(my_df1)
my_df1.loc [3] = pd.Series([3,4,3,4],index =('A','B','C','D'))print(my_df1)