在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?