numpy 我在重复什么?

1bqhqjot  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(116)

我正在练习Pandas Dataframe ,我对一件事感到困惑,因为我在Python方面还是一个新手,来自一个强大的Java,C家族背景。

for i in dataframe1.columns:
    dataframe1[i] = np.where(dataframe1[i] == 0, np.nan, dataframe1[i])

我对迭代的内容感到困惑。我认为dataframe1.columns将返回列名或列对象(但这是在Python中完成的)。因此,当使用where()函数为条件、dataframe1[i] == 0是否只检查列名(不管是字符串格式还是对象格式)== 0还是python隐式迭代每列中的值,即使代码中没有显式指定?
我错过了什么吗?请指示。

6l7fqoea

6l7fqoea1#

在@ddejohn上建立,

data = [
         ['fruit', 'veggies', 0], 
         ['0', 0, 'spices']
        ]
df=pd.DataFrame(data, columns=['col1','col2','col3'])
df

    col1    col2      col3
0   fruit   veggies      0
1      0         0    spices

使用替换将给予:

new_df=df.replace(0,np.nan)
new_df

    str1    str2     str3
0   fruit   veggies  NaN
1   0         NaN    spices

请注意,它没有切换第一列中的零,因为它是一个零字符串,而不是实际的零。

相关问题