Python 3.x - 使用 for 循环将数据附加到 Pandas 数据帧

Posted

技术标签:

【中文标题】Python 3.x - 使用 for 循环将数据附加到 Pandas 数据帧【英文标题】:Python 3.x - Append data to Pandas dataframe using for loop 【发布时间】:2016-10-13 15:07:28 【问题描述】:

我有一个空的 pandas DataFrame:

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")
   .
   .
   .

但是 append 会报错

TypeError: 无法连接非 NDFrame 对象

如何将元素一个一个地附加到 pandas 数据帧?

【问题讨论】:

错误很明显,您需要传递SeriesDataFrame 以进行追加,除了为什么在它表现不佳时这样做,因为您将在每次追加调用时迭代地增长df所以会很慢 【参考方案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

【讨论】:

感谢@jezrael 的建议

以上是关于Python 3.x - 使用 for 循环将数据附加到 Pandas 数据帧的主要内容,如果未能解决你的问题,请参考以下文章

在python中使用for循环时出现JSONDecodeError [重复]

遍历 for 循环并将检索到的数据保存在每个循环的唯一 csv 文件中 | Python

python 笔记1

如何使用'for'循环将新变量传递给python脚本

python循环之for循环与基本的数据类型以及内置方法

使用 for 循环遍历 Python 字典的 3 种方法 !