2016-06-13 49 views
1

我有一個空的熊貓數據框中添加數據到數據幀的熊貓:Python 3.x都有使用循環

aqi_df = pd.DataFrame(columns = ["IMEI","Date","pm10conc_24hrs","pm25conc_24hrs","sdPm10","sdPm25","aqi","windspeed","winddirection","severity","health_impact"]) 

我想通過一個添加到每一列的元素一個 -

for i in range(1,10): 
    aqi_df.IMEI.append("a") 
    aqi_df.Date.append("b") 
    aqi_df.pm10conc_24hrs.append("c") 
    . 
    . 
    . 

但追加拋出錯誤

TypeError: cannot concatenate a non-NDFrame object

如何將元素逐個追加到熊貓數據框?

+0

錯誤很明顯,你需要傳遞一個'Series'或' DataFrame'用於追加,除此之外爲什麼在非高性能時執行此操作,因爲您將在每次追加調用時迭代增加df,因此速度會很慢 – EdChum

回答

1

IIUC你可以使用:

aqi_df = pd.DataFrame(columns = ["IMEI","Date","pm10conc_24hrs"]) 
print (aqi_df) 


for i in range(1,10): 
    aqi_df.loc[i] = ['a','b','c'] 

print (aqi_df) 
    IMEI Date pm10conc_24hrs 
1 a b    c 
2 a b    c 
3 a b    c 
4 a b    c 
5 a b    c 
6 a b    c 
7 a b    c 
8 a b    c 
9 a b    c 

但更好的是創造DataFrame from Series or dict

IMEI = pd.Series(['aa','bb','cc']) 
Date = pd.Series(['2016-01-03','2016-01-06','2016-01-08']) 
pm10conc_24hrs = pd.Series(['w','e','h']) 

aqi_df = pd.DataFrame({'a':IMEI,'Date':Date,'pm10conc_24hrs':pm10conc_24hrs}) 
print (aqi_df) 
     Date a pm10conc_24hrs 
0 2016-01-03 aa    w 
1 2016-01-06 bb    e 
2 2016-01-08 cc    h 

aqi_df = pd.DataFrame({'a':['aa','bb','cc'], 
         'Date':['2016-01-03','2016-01-06','2016-01-08'], 
         'pm10conc_24hrs':['w','e','h']}) 
print (aqi_df) 
     Date a pm10conc_24hrs 
0 2016-01-03 aa    w 
1 2016-01-06 bb    e 
2 2016-01-08 cc    h 
+0

Th對於@jezrael的建議anks –