逐行添加创建Pandas Dataframe

33 浏览
0 Comments

逐行添加创建Pandas Dataframe

如何创建一个空的DataFrame,然后逐行添加?

我创建了一个空的DataFrame

df = pd.DataFrame(columns=('lib', 'qty1', 'qty2'))

然后我可以在结尾添加一行,并填充一个字段:

df = df._set_value(index=len(df), col='qty1', value=10.0)

这种方法每次只能添加一个字段。有什么更好的方法来添加新的行到df

admin 更改状态以发布 2023年5月21日
0
0 Comments

如果你能一次性获取数据框的所有数据,那么比追加到数据框中的方法要快得多:

  1. 创建一个字典列表,其中每个字典对应一个输入数据行。
  2. 从这个字典列表创建一个数据框。

我也有一个类似的任务,每次逐行追加到数据框中需要30分钟,而从字典列表创建数据框只需要几秒钟。

rows_list = []
for row in input_rows:
        dict1 = {}
        # get input row in dictionary format
        # key = col_name
        dict1.update(blah..) 
        rows_list.append(dict1)
df = pd.DataFrame(rows_list)               

0
0 Comments

你可以使用df.loc[i],其中索引为i的行将成为你在数据帧中指定的内容。

>>> import pandas as pd
>>> from numpy.random import randint
>>> df = pd.DataFrame(columns=['lib', 'qty1', 'qty2'])
>>> for i in range(5):
>>>     df.loc[i] = ['name' + str(i)] + list(randint(10, size=2))
>>> df
     lib qty1 qty2
0  name0    3    3
1  name1    2    4
2  name2    2    8
3  name3    2    1
4  name4    9    6

0