逐行添加创建Pandas Dataframe
逐行添加创建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日
如果你能一次性获取数据框的所有数据,那么比追加到数据框中的方法要快得多:
- 创建一个字典列表,其中每个字典对应一个输入数据行。
- 从这个字典列表创建一个数据框。
我也有一个类似的任务,每次逐行追加到数据框中需要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)
你可以使用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