2016-09-27 52 views
4

我想通過以下方式動態地擴展空大熊貓據幀:添加項目到空大熊貓數據幀

df=pd.DataFrame() 
indices=['A','B','C'] 
colums=['C1','C2','C3'] 
for colum in colums: 
    for index in indices: 
     #df[index,column] = anyValue 

當這兩個指數和colums可以被事先不知道的任意大小,也就是說我不能創建提前具有正確大小的DataFrame。

,可以使用哪些大熊貓功能

#df[index,column] = anyValue 

回答

3

我認爲你可以使用loc

df = pd.DataFrame() 

df.loc[0,1] = 10 
df.loc[2,8] = 100 
print(df) 
     1  8 
0 10.0 NaN 
2 NaN 100.0 

更快的解決方案與DataFrame.set_value

df = pd.DataFrame() 
indices = ['A', 'B', 'C'] 
columns = ['C1', 'C2', 'C3'] 
for column in columns: 
    for index in indices: 
     df.set_value(index, column, 1) 

print(df) 
    C1 C2 C3 
A 1.0 1.0 1.0 
B 1.0 1.0 1.0 
C 1.0 1.0 1.0 
+0

是的,這將是可能的 - 但我需要的索引和列字符串。是否有任何loc的變體,使得所得的df將包含索引'A','B'等和列名稱'C1','C2'? – user1934212

2

loc作品非常好,但...
對於單任務使用at

df = pd.DataFrame() 
indices = ['A', 'B', 'C'] 
columns = ['C1', 'C2', 'C3'] 
for column in columns: 
    for index in indices: 
     df.at[index, column] = 1 

df 

enter image description here


.at VS .loc VS .set_value時機

enter image description here

+0

謝謝,這似乎正是我所需要的 – user1934212

+0

您可以添加set_value的時間嗎? – jezrael

+0

@piRSquared - 謝謝。 – jezrael