【问题标题】:How to use re.sub in pandas datafram如何在熊猫数据框中使用 re.sub
【发布时间】:2021-04-16 17:16:46
【问题描述】:
def not_value(x):
    if type(x) == str:
        re.sub(r'(\s+)', np.nan, x)
    else:
        pass

df_copy=df.copy()
df_copy.astype(str).applymap(lambda x: not_value(x))

我检查了数据框中的值是一个字符串。但它总是表明 TypeError:解码为 str:需要一个类似字节的对象,找到浮点数。它有什么问题?

谢谢你给我答复。

【问题讨论】:

    标签: python dataframe python-re


    【解决方案1】:

    如果你只是想用np.nan替换某个字符串列中的值,当字符串的值全是空格时,你可以这样做。如果它是否是 all 空格无关紧要,您可能需要编辑正则表达式:

    import pandas as pd
    import re
    import numpy as np
    
    d = {'col1': [1, 2], 'col2': [3, 4], 'col3': ['s ', '  ']}
    
    df = pd.DataFrame(data=d)
    
    spaces = df['col3'].str.contains('^\s+$')
    df.loc[spaces, 'col3'] = np.nan
    df
    

    结果:

       col1  col2 col3
    0     1     3   s 
    1     2     4  NaN
    

    【讨论】:

      猜你喜欢
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 2021-05-27
      • 2020-02-17
      • 1970-01-01
      • 2016-03-09
      相关资源
      最近更新 更多