2017-08-01 108 views
2

我有一个简单的数据框与2列和2rows。 我也有一个4个数字的列表。无法在熊猫中创建锯齿状的数据框?

我想连接这个列表到数据框的第一列,只有第一列。所以数据框的第一列将有6行,第二列将有2行。

我写了这个代码:

df1 = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB')) 
numbers = [5, 6, 7, 8] 
for i in range(0, 4): 
    df1['A'].loc[i + 2] = numbers[i] 
print(df1) 

它打印出的原始数据帧奇怪的。但是,当我调试和评估表达df1['A']然后它确实显示新的数字。这里发生了什么?

这不仅仅是它打印原始df,它还会在我使用to_csv方法时将原始df写入csv。

回答

1

看来你需要:

for i in range(0, 4): 
    df1.loc[0, i] = numbers[i] 
print (df1) 
    A B 0 1 2 3 
0 1 2 5.0 6.0 7.0 8.0 
1 3 4 NaN NaN NaN NaN 

df1 = pd.concat([df1, pd.DataFrame([numbers], index=[0])], axis=1) 
print (df1) 
    A B 0 1 2 3 
0 1 2 5.0 6.0 7.0 8.0 
1 3 4 NaN NaN NaN NaN