在pandas.DataFrame中添加一行
我明白,熊猫被设计为加载完全填充的DataFrame
但我需要创建一个空的DataFrame,然后逐个添加行 。 做这个的最好方式是什么 ?
我成功地创建了一个空的DataFrame:
res = DataFrame(columns=('lib', 'qty1', 'qty2'))
然后我可以添加一个新行并填写一个字段:
res = res.set_value(len(res), 'qty1', 10.0)
它的工作,但似乎很奇怪: - /(它添加字符串值失败)
我如何添加一个新的行到我的DataFrame(使用不同的列类型)?
@ Nasser的答案示例:
>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(columns=['lib', 'qty1', 'qty2'])
>>> for i in range(5):
>>> df.loc[i] = [np.random.randint(-1,1) for n in range(3)]
>>>
>>> print(df)
lib qty1 qty2
0 0 0 -1
1 -1 -1 1
2 1 -1 1
3 0 0 0
4 1 -1 -1
[5 rows x 3 columns]
您可以使用pandas.concat()
或DataFrame.append()
。 有关详细信息和示例,请参阅合并,联接和连接。
您可以创建一个词典列表,其中每个词典对应一个输入数据行。 列表完成后,创建一个数据框。 这是一个更快的方法。
我有一个类似的问题,如果我为每一行创建了一个数据框并将其附加到主数据框中,则需要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)
链接地址: http://www.djcxy.com/p/70919.html
上一篇: add one row in a pandas.DataFrame
下一篇: What is the most efficient way to loop through dataframes with pandas?