我知道pandas旨在加载完全填充DataFrame但我需要创建一个空的DataFrame,然后逐个添加行.做这个的最好方式是什么 ?
我成功创建了一个空的DataFrame:
res = DataFrame(columns=('lib', 'qty1', 'qty2'))
Run Code Online (Sandbox Code Playgroud)
然后我可以添加一个新行并填充一个字段:
res = res.set_value(len(res), 'qty1', 10.0)
Run Code Online (Sandbox Code Playgroud)
它工作但似乎很奇怪: - /(它添加字符串值失败)
如何向我的DataFrame添加新行(具有不同的列类型)?
我将行附加到for循环中的pandas DataFrame,但最后数据帧始终为空.我不想将行添加到数组然后调用DataFrame构造函数,因为我的实际for循环处理大量数据.我也尝试过pd.concat没有成功.任何人都可以强调我缺少什么使附加语句有效吗?这是一个虚拟的例子:
import pandas as pd
import numpy as np
data = pd.DataFrame([])
for i in np.arange(0, 4):
if i % 2 == 0:
data.append(pd.DataFrame({'A': i, 'B': i + 1}, index=[0]), ignore_index=True)
else:
data.append(pd.DataFrame({'A': i}, index=[0]), ignore_index=True)
print data.head()
Empty DataFrame
Columns: []
Index: []
[Finished in 0.676s]
Run Code Online (Sandbox Code Playgroud) 我有一个过程,我可以循环遍历列表中保存的值,但它会用每个循环覆盖最终的数据帧,我想将循环的结果附加或连接到一个数据帧中。例如,下面给出的示例,我可以看到“dataframe”最初将填充“blah1”的结果,然后当进程完成时,它的结果为“blah2”
listtoloop = ['blah1','blah2']
for name in listtoloop:
some process happens here resulting in
dataframe = result of above process
Run Code Online (Sandbox Code Playgroud)