我有一个DF:
df = pd.DataFrame({"A":[0,1,3,5,6], "B":['B0','B1','B3','B5','B6'], "C":['C0','C1','C3','C5','C6']})
我尝试在A列的连续序列中缺失数字的位置插入10个空行。对于这10行,A列、B列和C列的值分别是缺失的数字Nan和Nan,如下所示:
A B C
0 B0 C0
1 B1 C1
2 NaN NaN
2 NaN NaN
2 NaN NaN
2 NaN NaN
2 NaN NaN
2 NaN NaN
2 NaN NaN
2 NaN NaN
2 NaN NaN
2 NaN NaN
3 B3 C3
4 NaN NaN
4 NaN NaN
4 NaN NaN
4 NaN NaN
4 NaN NaN
4 NaN NaN
4 NaN NaN
4 NaN NaN
4 NaN NaN
4 NaN NaN
5 B5 C5
6 B6 C6
我尝试过index,但这只添加了1行:
df1 = df.merge(how='right', on='A', right = pd.DataFrame({'A':np.arange(df.iloc[0]['A'],
df.iloc[-1]['A']+1)})).reset_index().drop(['index'], axis=1)
先谢了!
2条答案
按热度按时间rqqzpn5f1#
一种办法可以是:
df.set_index
使列A
成为索引。range
用于从0
到A
(即6
)的范围。np.repeat
应用df.reindex
,我们使用循环将1
输入到repeats
参数中,以获取A
中存在的所有值,并使用10
来获取所有缺失的值。df.reset_index
。9q78igpj2#
让我们试着对
repeat
大于1和concat
的索引进行repeat
运算:输出: