2017-08-01 43 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