Pandas 数据框中的列值替换

Pandas 数据框中的列值替换,pandas,dataframe,replace,Pandas,Dataframe,Replace,我有一个数据框,如下所示 日期时间 vnum 序号 1. 11-03-2021 22:05 APD 202613 867 2. 11-03-2021 22:08 AHD 152425 869 3. 11-03-2021 22:10 4. 11-03-2021 22:12 5. 11-03-2021 22:15 APD 202647 875 6. 11-03-2021 22:18 APD 202702 877 7. 11-03-2021 22:22 AHD 152540 881 8. 15-03-

我有一个数据框,如下所示

日期时间 vnum 序号 1. 11-03-2021 22:05 APD 202613 867 2. 11-03-2021 22:08 AHD 152425 869 3. 11-03-2021 22:10 4. 11-03-2021 22:12 5. 11-03-2021 22:15 APD 202647 875 6. 11-03-2021 22:18 APD 202702 877 7. 11-03-2021 22:22 AHD 152540 881 8. 15-03-2021 07:03 D 154070 177
首先将所有列中的
x00
替换为空字符串,然后使用您的解决方案:

df = df.replace('\x00', '', regex=True) 

#for replace space or empty strings
df['vnum'] = df['vnum'].replace([' ', ''], 'XXX 000000')
#for replace empty strings or one, two  to n spaces only
df['vnum'] = df['vnum'].replace('^\s*$', 'XXX 000000', regex=True)
df['seq'] = df['seq'].astype(str).str.zfill(4)

什么是
print(df['vnum'].head(5.tolist())
?我问这个问题是因为不确定是否有空字符串?空间?或者NaNs?@jezrael,它显示了类似于“APD 202646”、“APD 202613”、“AHD 152425”、“如何解决要求-如果值小于10个字符,则用“XXX 000000”替换它。示例给定数据的第8行frame@user_v27-使用
df['vnum']=df['vnum'].mask(df['vnum'].str.len()<10,'XXX 000000')