如何在 df 拆分期间保持我的列模式?

当我分割数据框时,我需要维护列的模式(“项目类型”)。例如,这是我的数据:

https://img.mukewang.com/64e48bb70001941a01760480.jpg

例如,我想要实现的目标是:如果我在 10 行后进行拆分,那么我仍希望包含第 11 行,因为它是模式的一部分。这里的模式是一个“产品”、x“SKU”数量,后跟y“规则”数量。该模式内的任何分割都应包括整个模式。


我当前的代码:


import pandas as pd

import numpy as np


df = 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 语句?


芜湖不芜
浏览 141回答 1
1回答

犯罪嫌疑人X

这是一个通用的解决方案,给定多行,将找到带有“Product”的下一行,然后包含到该点的所有行。例如,给定n=7:n = 7df_after = df.iloc[n:]new_idx = df_after.loc[df_after['Item Type'] == 'Product'].index[0]res = df.loc[:new_idx].iloc[:-1]会给:    Item Type1     Product2         SKU3         SKU4         SKU5         SKU6         SKU7        Rule8        Rule9        Rule10       Rule11       Rule该代码应该独立于索引值工作,即索引可以是任何内容,只要没有重复项即可。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python