python - 如何有条件地填写“nan”值?
问题描述
我想用这样的填充缺失值:
data = pd.read_csv("E:\\SPEED.csv")
数据 - 数据框
Case - 1
if flcass= "motorway", "motorway_link", "trunk" or "trunk_link"
我想用 110 替换文本“nan”
Case - 2
if flcass= "primary", "primary_link", "secondary" or "secondary_link"
我想用 70 替换文本“nan”
Case - 3
如果“fclass”是另一个值,我想将其更改为 40。
如果有任何帮助,我将不胜感激。
解决方案
用下面的例子:
data = pandas.DataFrame({
'flclass': ['a', 'b', 'c', 'a'],
'AGU': [float('nan'), float('nan'), float('nan'), 9]
})
您可以使用numpy 条件迭代从数据中的第 2 个 ( [1:]
) - 5 个 ( )开始的列来更新它[4:]
:
for column in data.columns[1:]:
data[column] = np.where((data['flclass'] == 'b') & (data[column].isna()), 110, data[column])
import numpy as np
data['AGU'] = data.apply(
lambda row: 110 if np.isnan(row['AGU']) and row['flclass'] in ("b","a") else row['AGU'],
axis=1,
)
你可以("b","a")
用例如替换的地方("motorway", "motorway_link", "trunk", "trunk_link")
推荐阅读
- python - 如何从 Python3 中的 input() 获取字节数组?
- java - 如何在 Java 中向 Guava 多图的所有键添加单个值
- java - 如何使用 bean 为具有多个存储库的 JPA 应用程序播种?
- python - 加入没有 ON 子句但具有多列条件的数据帧并在 pyspark 中填充标志
- typescript - 如何在表素数 Ng 中创建 virtualScroll 的单元测试
- python - TKinter 在关闭应用程序时出现问题
- c++ - 在不兼容的类型之间转换
- swift - 如何启用滑动删除而不导致 NSInternalInconsistencyException?
- r - 在 R 中的数据框中的列中求和
- python - 如何模拟python中方法的默认值?