Python:替换为正则表达式
我正在尝试使用Pandas替换数据。 以下是我的目标:Python:替换为正则表达式,python,regex,python-3.x,pandas,replace,Python,Regex,Python 3.x,Pandas,Replace,我正在尝试使用Pandas替换数据。 以下是我的目标: 从温度和风速列中删除字母32 F 将由32替换,6 mph将由6替换 将温度和风速中的所有负数转换为 NaN-99999将转换为NaN 将event中的所有0转换为No event 下面是我的代码 import pandas as pd import numpy as np input_data = {'day': ['1/1/2017', '1/4/2017', '1/5/2017', '1/6/2017',
温度
和风速
列中删除字母<代码>32 F
将由32
替换,6 mph
将由6
替换温度
和风速
中的所有负数转换为
NaN
<代码>-99999将转换为NaN
event
中的所有0
转换为No event
import pandas as pd
import numpy as np
input_data = {'day': ['1/1/2017', '1/4/2017', '1/5/2017', '1/6/2017',
'1/7/2017', '1/8/2017', '1/9/2017', '1/10/2017', '1/11/2017'],
'temperature': ['32 F', -99999, 28, -99999, '32 C', '38 F', 35, 34, 40],
'windspeed': ['6 mph', 9, -99999, 7, -88888, -99999, '10 kmph', 8, 12],
'event': ['Rain', 'Sunny', 'Snow', 0, 'Rain', 'Sunny', 0, 'Cloudy', 'Sunny']
}
weather2 = pd.DataFrame(input_data)
new_weather = weather2.replace({"temperature":{-99999: np.NaN,
-88888: np.NaN,
'[A-Za-z]':''},
"windspeed":{-99999: np.NaN,
-88888: np.NaN,
'[A-Za-z]':''},
"event":{0:'No Event'}},regex=True)
结果如下:
只有正则表达式被更改。如何将regex与其他replace组合起来?因为在开始时,列类型应该是string,所以这里的所有
数字都应该是string类型
new_weather = weather2.replace({"temperature":{'-99999': np.NaN,
'-88888': np.NaN,
'[A-Za-z]':''},
"windspeed":{'-99999': np.NaN,
'-88888': np.NaN,
'[A-Za-z]':''},
"event":{'0':'No Event'}},regex=True)
如果您想了解更多信息,请尝试
weather2.applymap(type)
你能把输入数据的图片改成文本吗?为输入数据添加了代码文本非常感谢!将所有的数字
设置为字符串
解决了这个问题。@Main是的,yw~:-)愉快的编码