通过一次添加一行来创建 pandas 数据框 [英] Create pandas Dataframe by appending one row at a time
问题描述
我了解pandas旨在加载完全填充的 DataFrame
,但我需要创建一个空的DataFrame,然后逐行添加行.最好的方法是什么?
I understand that pandas is designed to load fully populated DataFrame
but I need to create an empty DataFrame then add rows, one by one.
What is the best way to do this ?
我成功创建了一个空的DataFrame:
I successfully created an empty DataFrame with :
res = DataFrame(columns=('lib', 'qty1', 'qty2'))
然后我可以添加一个新行并用:填充字段:
Then I can add a new row and fill a field with :
res = res.set_value(len(res), 'qty1', 10.0)
它可以工作,但看起来很奇怪:-/(添加字符串值失败)
It works but seems very odd :-/ (it fails for adding string value)
如何将新行添加到DataFrame中(具有不同的列类型)?
How can I add a new row to my DataFrame (with different columns type) ?
推荐答案
您可以使用 df.loc [i]
,其中索引为 i
的行将是您将其指定为在数据框中.
You can use df.loc[i]
, where the row with index i
will be what you specify it to be in the dataframe.
>>> 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
这篇关于通过一次添加一行来创建 pandas 数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!