当我分割数据框时,我需要维护列的模式(“项目类型”)。例如,这是我的数据:例如,我想要实现的目标是:如果我在 10 行后进行拆分,那么我仍希望包含第 11 行,因为它是模式的一部分。这里的模式是一个“产品”、x“SKU”数量,后跟y“规则”数量。该模式内的任何分割都应包括整个模式。我当前的代码: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条经验 获得超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
该代码应该独立于索引值工作,即索引可以是任何内容,只要没有重复项即可。
添加回答
举报
0/150
提交
取消