在我的DataFrame
中,我先用nan
替换大于某个值的值,然后使用相同的列名创建另一个DataFrame
并用随机数填充。然后,用新创建的DataFrame
更新原始nan
,但是在我首先设置列nan
的值的行中,所有其他列都变为nan
。该列中带有pandas
的原始行没有相同的问题。这是我在df[df['column_name'] > 40] = np.nan
column_series = df['column_name']
null_indices = column_series[column_series.isnull()].index
random_df = pd.DataFrame(np.random.normal(mu, sigma, size=len(null_indices)), index=null_indices, columns=['column_name'])
df.update(random_df)
语法中的意思:
nan
以下一些数字可以更好地说明情况:
在用> 40
替换值nan
之前,该列中6685022
的数量:> 40: 329066
列值为nan
的行数
替换后,除column_name
以外的每一列中有329066
的行数:<div *ngFor="let a of [1,2,3,4]; let i = index" (click)="getValue(a)">
<input type="checkbox" name="alarm_check" id="index_{{i+1}}">
</div>
答案 0 :(得分:0)
使用此推荐方法:
df.loc[df['coulmn_name'] > 40, 'column_name'] = np.nan
答案 1 :(得分:0)
df[df['column_name'] > 40] = np.nan
中的值> 40,则 df
将用空值填充整个column_name
。
Nihal是正确的,但我更喜欢这种形式(更清洁的imo):
df.column_name.loc[df.column_name > 40] = np.nan
PS:最好使用Jupyter Notebook查看每个步骤中DataFrame的外观。
答案 2 :(得分:0)
这可能有用
df.ix[df['column_name'] > 40,'column_name'] = np.nan # or indexof columns
column_series = df['column_name']
null_indices = column_series[column_series.isnull()].index
random_df = pd.DataFrame(np.random.normal(mu, sigma, size=len(null_indices)),
index=null_indices, columns=['column_name'])
df.update(random_df)
答案 3 :(得分:0)
问题只出现在您的第一句话上
df[df['column_name'] > 40] = np.nan
表示“用nan
替换所选行中的所有值”。所以命令
df.update(random_df)
继承。