Kal*_*nta 7 python dataframe pandas
我有一个像这样的数据框:
df
col1 col2
1 A
3 B
6 A
10 C
Run Code Online (Sandbox Code Playgroud)
我想以这种方式从df上方创建一个数据帧,如果col1值不连续,它将使用下一个col1值创建另一行,而col2值将恰好是上述值。
我正在寻找的数据框应该是
df
col1 col2
1 A
2 A
3 B
4 B
5 B
6 A
7 A
8 A
9 A
10 C
Run Code Online (Sandbox Code Playgroud)
我可以使用简单的for循环来做到这一点,但是有没有什么pythonic方式可以使用pandas最有效地做到这一点?
这是使用set_index()
andreindex
和 的一种方法ffill
:
df.set_index('col1').reindex(range(df.col1.min(),df.col1.max()+1)).ffill().reset_index()
#df.set_index('col1').reindex(range(df.col1.min(),df.col1.max()+1),method='ffill')\
#.reset_index()
Run Code Online (Sandbox Code Playgroud)
col1 col2
0 1 A
1 2 A
2 3 B
3 4 B
4 5 B
5 6 A
6 7 A
7 8 A
8 9 A
9 10 C
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
78 次 |
最近记录: |