python-如何顺序删除熊猫数据框中的特定值?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-如何顺序删除熊猫数据框中的特定值?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2562字,纯文字阅读大概需要4分钟。
内容图文
![python-如何顺序删除熊猫数据框中的特定值?](/upload/InfoBanner/zyjiaocheng/669/a988c7ebf6ae498ba8fb8001326ebef4.jpg)
我在字典中存储了几个熊猫数据框:
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()
这有效,我可以得到所有“产品”的长度.
接下来,我要删除产品字符串长度较短的行,即: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)]
解决方法:
首先,您应该使用字典或列表来保存许多相似的结构化数据框,而不要用单独的数据框充斥全局环境.始终使用容器进行组织,并设置为运行诸如pd.concat之类的批量操作来构建主集.但是请确保直接将数据帧分配给字典,而不要创建单独的对象.
由于您的字典数据帧不更新的原因是您分配不正确. df的每个实例都需要替换为df [key].所以,
df[~(df['Productsize'] <= 6)]
将被替换为
df_dict[key][~(df_dict[key]['Productsize'] <= 6)]
将数据框存储在容器中时,只要引用它的更改,就不会丢失任何功能.因此,请相应调整:
for k, v in df_dict.items():
df_dict[k]['Productsize'] = df_dict[k]['product'].str.len()
df_dict[k] = df_dict[k][~(df_dict[k]['Productsize'] <= 6)]
或者,使用字典循环的值项,但将对当前索引的临时更改重新分配为@phi explains.
for k, v in df_dict.items():
v['Productsize'] = v['product'].str.len()
v = v[~(v['Productsize'] <= 6)]
df_dict[k] = v
内容总结
以上是互联网集市为您收集整理的python-如何顺序删除熊猫数据框中的特定值?全部内容,希望文章能够帮你解决python-如何顺序删除熊猫数据框中的特定值?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。