我可以使用.loc()
在 Dataframe 中创建一个新行:
>>> df = pd.DataFrame({'a':[10, 20], 'b':[100,200]}, index='1 2'.split())
>>> df
a b
1 10 100
2 20 200
>>> df.loc[3, 'a'] = 30
>>> df
a b
1 10.0 100.0
2 20.0 200.0
3 30.0 NaN
但是如何使用相同的方法创建多行呢?
>>> df.loc[[4, 5], 'a'] = [40, 50]
...
KeyError: '[4 5] not in index'
我很熟悉.append(),但我正在寻找一种方法,它不需要在将新行追加到df
之前将其构造到Series中。
所需输入:
>>> df.loc[[4, 5], 'a'] = [40, 50]
型
期望输出
a b
1 10.0 100.0
2 20.0 200.0
3 30.0 NaN
4 40.0 NaN
5 50.0 NaN
其中最后2行是新添加的。
3条答案
按热度按时间biswetbf1#
诚然,这是一个很晚的答案,但我不得不处理一个类似的问题,并认为我的解决方案可能对其他人也有帮助。
重新创建数据后,基本上分为两步:
1.重新创建数据:
1.使用
.reindex
扩展df.index
:1.使用
.loc
设置值:给你
nkkqxpd92#
示例数据
案例1注意,
range
可以更改为您想要的任何值。案例2在这里,我们向一个开始时有8行的数据框添加一个新列。当我们将新列
c
扩展为长度10时,其他列也将扩展为NaN
。zujrkrfu3#
虽然有点晚,但我的解决方案与公认的解决方案相似:
...产生:
现在也可以这样做(当聚合 Dataframe 的性能很重要时很有用):
一个二个一个一个