从一个Pandas列中取出第1行、第2行、第4行和第5行等,并放入两个新列Python



下面是pandas数据帧的示例,它是一个包含1000行的单列。

我需要第二列/第三列将数据放入第二列或第三列中的第1行和第2行、第4行和第5行等

0
0    \path_1file1.csv                                                                                                                                                     
1    23082022 DS
2    520i2146002
3    \path_2file2.csv                                                                                                                                
4    230822 NS
5    520i2146002
4    \path_3file3.csv                                                                                                                                             
5    24082022 DS
6    520i2146002

所需输出

0        1            2     
0    \path_1file1.csv      23082022 DS    520i2146002                                                                                                                                           
1    \path_2file2.csv      230822 NS      520i2146002                                                                                                                             
2    \path_3file3.csv      24082022 DS    520i2146002                                                                                                                                    

只能设法抽出赔率:

df = pd.DataFrame({0: df[0].iloc[::2].values, 'value': df[0].iloc[1::2].values})

建议?

从0、1和2开始,每隔三个值生成三个子集。重置每个子集的索引,并将它们全部连接在一起。

df = pd.concat([df.loc[::3].reset_index(drop=True),
df.loc[1::3].reset_index(drop=True), 
df.loc[2::3].reset_index(drop=True)], axis=1, ignore_index=True)
print(df)

输出:

0            1            2
0  \path_1file1.csv  23082022 DS  520i2146002
1  \path_2file2.csv    230822 NS  520i2146002
2  \path_3file3.csv  24082022 DS  520i2146002

略为简洁:

df = pd.concat([df.loc[i::3].reset_index(drop=True) for i in range(3)],
axis=1, ignore_index=True)

最新更新