Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据另一列的特定值从一列中删除NaN_Python_Pandas_Dataframe_Nan_Drop - Fatal编程技术网

Python 如何根据另一列的特定值从一列中删除NaN

Python 如何根据另一列的特定值从一列中删除NaN,python,pandas,dataframe,nan,drop,Python,Pandas,Dataframe,Nan,Drop,无法确定如何根据另一列特定值从特定列中删除NaN值。 数据帧的一部分(df): 我需要从vol.中删除nan值,但仅当组中的相应值为1时 我试过: df.loc[df['group'] == 1,'vol.'].dropna(inplace=True) 但是df仍然具有所有值,因为dropna无效。您可以更改逻辑-使用nans在以下位置选择不带1的所有值: 使用以下命令: df = df.loc[df['group'] == 1,'vol.'] df.dropna(inplace=True)

无法确定如何根据另一列特定值从特定列中删除NaN值。 数据帧的一部分(
df
):

我需要从
vol.
中删除nan值,但仅当
组中的相应值为1时

我试过:

df.loc[df['group'] == 1,'vol.'].dropna(inplace=True)

但是
df
仍然具有所有值,因为dropna无效。

您可以更改逻辑-使用
nan
s在以下位置选择不带
1
的所有值:

使用以下命令:

df = df.loc[df['group'] == 1,'vol.']
df.dropna(inplace=True)

虽然这段代码可以为这个问题提供一个解决方案,但最好添加上下文来说明它为什么/如何工作。这可以帮助未来的用户学习,并将这些知识应用到他们自己的代码中。在解释代码时,用户可能会以投票的形式向您提供正面反馈。
#if necessary convert strings nan to missing values `NaN`s
df['vol.'] = df['vol.'].replace('nan', np.nan)


df = df[(df['group'] != 1) | df['vol.'].notna()]
print (df)
            vol.  group
1186  10,448,898      1
1187         NaN      0
1188  35,047,520      1
8329     130,703      0
8330     241,489      1
8333     101,142      0
df = df.loc[df['group'] == 1,'vol.']
df.dropna(inplace=True)