假設有一個 panda 的資料框 A,定義如下:
df_A = pd.read_csv('A.csv') #read data
如何將 df_A 分配給新的資料框 df_B,以便 df_B 選擇 m 行并洗掉 n 行 df_A。
具體示例:df_B 選擇 df_A 的 5 行并轉義 3,選擇接下來的 5 行并再次轉義 3,依此類推。
uj5u.com熱心網友回復:
我們能試試:
df = pd.DataFrame(dict(zip(range(10), range(1, 11))), index=range(10))
s = pd.Series([True, False]).repeat(pd.Series({True : 5, False : 3}))
df[np.tile(s, int(np.ceil(len(df) / len(s))))[:len(df)]]
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
1 1 2 3 4 5 6 7 8 9 10
2 1 2 3 4 5 6 7 8 9 10
3 1 2 3 4 5 6 7 8 9 10
4 1 2 3 4 5 6 7 8 9 10
8 1 2 3 4 5 6 7 8 9 10
9 1 2 3 4 5 6 7 8 9 10
uj5u.com熱心網友回復:
您可以做的是遍歷行,df_A.iterrows()然后將五行添加到 df_Bdf_B.append()
像這樣的東西:
i_a = 0
i_b = 0
m = 5
n = 3
for index,row in df_A.itterrows():
i_a = 1
if i_a >= m:
i_b = 1
if i_b >= n:
i_a = 0
i_b = 0
continue
df_B.append(row)
根據您的資料框有多大,這將表現得很好
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/414305.html
標籤:
