我尝试使用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
答案 0 :(得分:1)
全部为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
答案 1 :(得分:0)
最后,我发现了如何将系列作为行或列添加到数据框
my_data = {'A':pd.Series([1,2,3]),'B':pd.Series([4,5,6]),'C':('a','公元前')} my_df1 = pd.DataFrame(my_data)
print(my_df1)
my_df1.loc [:,'D'] = pd.Series([5,5,5],index = my_df1.index) 打印(my_df1)
my_df1.loc [3] = pd.Series([3,4,3,4],index =('A','B','C','D')) 打印(my_df1)