回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在字典中存储了几个<code>pandas</code>数据帧:</p>
<pre><code>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}
</code></pre>
<p>我想知道<code>product</code>中每个字符串的长度,所以我写如下。你知道吗</p>
<pre><code>for i, ii in df_dict.items():
ii['Productsize'] = ii['product'].str.len()
</code></pre>
<p>这是有效的,我可以得到所有“产品”的长度。你知道吗</p>
<p>接下来,我要删除具有短<code>product</code>字符串长度的行,即:<code>Productsize < 6</code></p>
<p>我试着用这个代码:</p>
<pre><code>for i, ii in df_dict.items():
ii=ii[~(ii['Productsize'] <= 6)]
</code></pre>
<p>然而,这并没有起作用。
如果我像下面那样单独编写(即不在循环中),它仍然可以工作。你知道吗</p>
<pre><code>df1=df1[~(df1['Productsize'] <= 6)]
</code></pre>
<p>有人知道问题出在哪里吗?你知道吗</p>
<p>我试过你们建议的。不幸的是,这不起作用。你知道为什么。。。?这是密码。你知道吗</p>
<pre><code>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)]
</code></pre>