У меня есть несколько pandas
фреймов данных, хранящихся в словаре:
df1=pd.DataFrame({'product':['ajoijoft','bbhjbh','cser','sesrd','yfgjke','tfyfyf','drdrtjg'],'price':[1,2,3,4,5,6,7],'label':['h','i','j','k','L','n','m']})
df2=pd.DataFrame({'product':['ajyughjoijoft','bdrddbhjbh','rdtrdcser','sdtrdthddesrd','yawafgjke','tesrgsfyfyf','sresedrdrtjg'],'price':[1,2,3,4,5,6,7],'label':['h','i','j','k','L','n','m']})
df3=pd.DataFrame({'product':['joijoft','bdbhjbh','rdcser','sdhddesrd','wajke','yf','sresedrdrtjg'],'price':[1,2,3,4,5,6,7],'label':['h','i','j','k','L','n','m']})
df_dict = {"A":df1,'B':df2, "C":df3}
Я хочу знать длину каждой строки в product
, поэтому я пишу, как показано ниже.
for i, ii in df_dict.items():
ii['Productsize'] = ii['product'].str.len()
Это сработало, и я мог бы получить длину для всего «продукта».
Далее я хочу удалить строки, которые имеют короткую product
длину строки, то есть: Productsize < 6
Я пытался использовать этот код:
for i, ii in df_dict.items():
ii=ii[~(ii['Productsize'] <= 6)]
Однако это не сработало.Если я напишу по отдельности (т.е. не в цикле), как показано ниже, это будет работать, хотя.
df1=df1[~(df1['Productsize'] <= 6)]
Кто-нибудь знает, в чем может быть проблема?
Я пытался, ребята, вы предложили.К сожалению, это не работает.Ты знаешь почему...?Вот код.
df1=pd.DataFrame({'product':['ajoijoft','bbhjbh','cser','sesrd','yfgjke','tfyfyf','drdrtjg'],'price':[1,2,3,4,5,6,7],'label':['h','i','j','k','L','n','m']})
df2=pd.DataFrame({'product':['ajyughjoijoft','bdrddbhjbh','rdtrdcser','sdtrdthddesrd','yawafgjke','tesrgsfyfyf','sresedrdrtjg'],'price':[1,2,3,4,5,6,7],'label':['h','i','j','k','L','n','m']})
df3=pd.DataFrame({'product':['joijoft','bdbhjbh','rdcser','sdhddesrd','wajke','yf','sresedrdrtjg'],'price':[1,2,3,4,5,6,7],'label':['h','i','j','k','L','n','m']})
df_dict = {"A":df1,'B':df2, "C":df3}
for i, ii in df_dict.items():
ii['Productsize'] = ii['product'].str.len()
for i, ii in df_dict.items():
df_dict[i] = ii[~(ii['Productsize'] <= 6)]