Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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:替换为正则表达式_Python_Regex_Python 3.x_Pandas_Replace - Fatal编程技术网

Python:替换为正则表达式

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',

我正在尝试使用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', 
                             '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~:-)愉快的编码