當我分割數(shù)據(jù)框時,我需要維護列的模式(“項目類型”)。例如,這是我的數(shù)據(jù):例如,我想要實現(xiàn)的目標是:如果我在 10 行后進行拆分,那么我仍希望包含第 11 行,因為它是模式的一部分。這里的模式是一個“產(chǎn)品”、x“SKU”數(shù)量,后跟y“規(guī)則”數(shù)量。該模式內(nèi)的任何分割都應包括整個模式。我當前的代碼:import pandas as pdimport numpy as npdf = pd.read_csv("bracelet_no_variants.csv")l=[i*1000 for i in range(len(df)//1000+1)]+[len(df)]for i in range(len(l)-1): temp=df.iloc[l[i]:l[i+1]] temp.to_csv('bracelet_no_variants_'+str(l[i+1])+'.csv')我是否需要添加 if/else 語句?
1 回答

犯罪嫌疑人X
TA貢獻2080條經(jīng)驗 獲得超4個贊
這是一個通用的解決方案,給定多行,將找到帶有“Product”的下一行,然后包含到該點的所有行。
例如,給定n=7:
n = 7
df_after = df.iloc[n:]
new_idx = df_after.loc[df_after['Item Type'] == 'Product'].index[0]
res = df.loc[:new_idx].iloc[:-1]
會給:
Item Type
1 Product
2 SKU
3 SKU
4 SKU
5 SKU
6 SKU
7 Rule
8 Rule
9 Rule
10 Rule
11 Rule
該代碼應該獨立于索引值工作,即索引可以是任何內(nèi)容,只要沒有重復項即可。
添加回答
舉報
0/150
提交
取消