仅从列 pandas 中删除值
Dropping values only from a column pandas
我有一个 DataFrame,其中包含一些字符串值,我正在将其转换为整数,以供将来计算。来自列 df['Age']
的值有一些标记为 NaN
值的错误。使用 dropna
函数我丢失了整行的一半和其他列中的大量数据。在不更改主 DataFrame 的情况下,我如何才能 select 仅计算 df['Age']
中不是 NaN
值的值。
df['Age'] = np.where(pd.to_numeric(df['Age'], 'coerce').notnull(), df['Age'], NaN)
df = df.dropna(subset=['Age'])
df['Age'] = df['Age'].astype(int)
将 df['Age']
转换为数值后,使用另一个带切片的变量。
例如,假设您有一个 income
字段:
another_df = df['income'][~ps.isnull(df['age'])] * 2
或者,更一般地说:
another_df = df['income'][~ps.isnull(df['age'])].apply(lambda x: x*2)
并且您可以在 apply
调用中使用任何函数
注意:您的原始数据框 df
保持不变
至select年龄不为空的行:
df[df.Age.notnull()]
或者您可能只想要年龄:
df[[df.Age.notnull()].Age
我有一个 DataFrame,其中包含一些字符串值,我正在将其转换为整数,以供将来计算。来自列 df['Age']
的值有一些标记为 NaN
值的错误。使用 dropna
函数我丢失了整行的一半和其他列中的大量数据。在不更改主 DataFrame 的情况下,我如何才能 select 仅计算 df['Age']
中不是 NaN
值的值。
df['Age'] = np.where(pd.to_numeric(df['Age'], 'coerce').notnull(), df['Age'], NaN)
df = df.dropna(subset=['Age'])
df['Age'] = df['Age'].astype(int)
将 df['Age']
转换为数值后,使用另一个带切片的变量。
例如,假设您有一个 income
字段:
another_df = df['income'][~ps.isnull(df['age'])] * 2
或者,更一般地说:
another_df = df['income'][~ps.isnull(df['age'])].apply(lambda x: x*2)
并且您可以在 apply
调用中使用任何函数
注意:您的原始数据框 df
保持不变
至select年龄不为空的行:
df[df.Age.notnull()]
或者您可能只想要年龄:
df[[df.Age.notnull()].Age