簡體   English   中英

如何在 pandas 數據幀中使用 re.sub

[英]How to use re.sub in pandas datafram

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))

我檢查了 dataframe 中的值是一個字符串。 但它總是顯示 TypeError:decode to str: need a bytes-like object, float found。 它有什么問題?

謝謝你給我答復。

如果您只想用np.nan替換某個字符串列中的值,當字符串的值全是空格時,您可以執行以下操作。 如果它是否是空格並不重要,您可能需要編輯正則表達式:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM