Create a Pandas Dataframe by appending one row at a time(通过一次追加一行来创建 Pandas 数据框)
问题描述
我了解 Pandas 旨在加载完全填充的 DataFrame,但我需要创建一个空的 DataFrame,然后逐一添加行.最好的方法是什么?
I understand that Pandas is designed to load a 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 it seems very odd :-/ (It fails for adding a string value.)
如何向我的 DataFrame 添加新行(具有不同的列类型)?
How can I add a new row to my DataFrame (with a 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 数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:通过一次追加一行来创建 Pandas 数据框
基础教程推荐
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
