請參閱以下資料框。
import pandas as pd
data = [['PMO', 10], ['LOL', 15], ['juli', 14], ['PMO', 10], ['LOL',
15], ['juli', 14]]
df = pd.DataFrame(data, columns=['Name', 'Age'])
print(df)
我想遍歷這個說明性的資料框并復制/乘以行,以便如果一行包含或匹配 PMO,則該行在下面重復。這可能嗎,如果可以,怎么辦?
親切的問候
uj5u.com熱心網友回復:
這是一個小技巧,檢查 Name 是否等于 PMO 以獲取布爾系列并加 1 以轉換為 1/2 的整數系列。將其用于repeat索引:
out = df.loc[df.index.repeat(df['Name'].eq('PMO').add(1))]
對于更經典的方式,請使用concat:
out = pd.concat([df, df.loc[df['Name'].eq('PMO')]]).sort_index()
輸出:
Name Age
0 PMO 10
0 PMO 10
1 LOL 15
2 juli 14
用 'juli' 復制行 6 次:
N = 6
out = df.loc[df.index.repeat(df['Name'].eq('juli').mul(N-1).add(1))]
輸出(只有 N=3 以保持簡短):
Name Age
0 PMO 10
1 LOL 15
2 juli 14
2 juli 14
2 juli 14
3 PMO 10
4 LOL 15
5 juli 14
5 juli 14
5 juli 14
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/519472.html
標籤:Python熊猫数据框
上一篇:如何創建遞增組列計數器
