首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据另一列中的值更新一列中的值?(获取KeyError:“[列中没有...are ]”)

如何根据另一列中的值更新一列中的值?(获取KeyError:“[列中没有...are ]”)
EN

Stack Overflow用户
提问于 2019-10-02 16:32:27
回答 1查看 87关注 0票数 0

如果另一列的同一行中的值也为null,我希望将一列中的值设置为null (np.nan)。

我在努力:

代码语言:javascript
复制
df.loc[df[7].isnull(), df[10]] = np.nan

我得到了错误:

代码语言:javascript
复制
KeyError: "None of [Index(['Density at 15 C (g/mL) (ASTM D5002)', 'Method', 'ASTM D5002)',\n       'ASTM D5002)', 'ASTM D5002)', 'ASTM D5002)', 'ASTM D5002)',\n       'ASTM D5002)', 'ASTM D5002)', 'ASTM D5002)',\n       ...\n       'ASTM D5002)', 'ASTM D5002)', 'ASTM D5002)', 'ASTM D5002)',\n       'ASTM D5002)', 'ASTM D5002)', 'ASTM D5002)', 'ASTM D5002)',\n       'ASTM D5002)', 'ASTM D5002)'],\n      dtype='object', length=297)] are in the [columns]"

我尝试删除“空白空间”,正如我在另一个答案中看到的那样,通过使用:

代码语言:javascript
复制
delimiter=','

并已尝试:

代码语言:javascript
复制
df[7]=df[7].replace(' ','')

我还是会犯同样的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-02 16:34:02

使用:

代码语言:javascript
复制
df.loc[df[7].isnull(),10] = np.nan

示例:

代码语言:javascript
复制
df=pd.DataFrame()
df[1]=[np.nan, 2 ,3 ,4, np.nan]
df[2]=[1,2,3,4,5]
print(df)

     1  2
0  NaN  1
1  2.0  2
2  3.0  3
3  4.0  4
4  NaN  5


df.loc[df[1].isnull(),2]=np.nan
print(df)

     1    2
0  NaN  NaN
1  2.0  2.0
2  3.0  3.0
3  4.0  4.0
4  NaN  NaN

其他案件:

代码语言:javascript
复制
df=pd.DataFrame()
df[1]=[np.nan, 2 ,3 ,4, '']
df[2]=[1,2,3,4,5]
print(df)

     1  2
0  NaN  1
1    2  2
2    3  3
3    4  4
4       5

df.loc[df[1].isnull(),2]=np.nan
print(df)

     1    2
0  NaN  NaN
1    2  2.0
2    3  3.0
3    4  4.0
4       5.0

,如您所见,您不能只使用isnull进行检查。

在这种情况下,您需要:

代码语言:javascript
复制
df.loc[df[1].isnull()|df[1].eq(''),2]=np.nan
print(df)
     1    2
0  NaN  NaN
1    2  2.0
2    3  3.0
3    4  4.0
4       NaN
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58205666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档