1
我已经看到了一些“在熊猫数据框中插入一行”的答案,但是他们通常假设有一行插入,或者与我所寻找的略有不同。熊猫:插入没有循环的行
我打算根据条件多次从另一个数据帧插入df
。
下面的代码“工作”,因为它给了我我正在寻找的东西,但是我想知道这是否可以在没有for
循环的情况下完成。
df = pd.DataFrame({
'a':[1,2,3,2,3,1,1,2,1,2,3,3,1,3],
'b':[0,0,0,0,0,0,0,0,0,0,0,0,0,0]
})
df2 = pd.DataFrame(columns = df.columns)
row_fill = pd.DataFrame({'a':[100],'b':[200]})
for i in df.index:
if df['a'][i] == 2:
df2 = df2.append(row_fill)
df2 = df2.append(df.loc[i])
df2.reset_index(inplace = True, drop = True)
df = df2
任何帮助表示赞赏。
谢谢@MaxU - 我只是通过这个正确的思维了。我对numpy很不熟悉。但显然它的作品! – pshep123
@ pshep123,欢迎您:)如果您不喜欢Numpy,我们可以使用:'idx = df.index [df.a == 2]'而不是 – MaxU
这太好了,再次感谢@MaxU。我分解了最后一个'.concat()'函数,只是为了看看发生了什么。是不是因为'df'在那个'.concat()'中是第一个,尽管他们有相同的索引,它仍然在'new'之前? – pshep123