如何在每个元素的列表中用“_”替换空格 - Python

pel*_*les 5 replace python-3.x pandas

我用这个命令导入了一个 .csv 文件:

 mydata = pd.read_csv(file ,sep='\t' , engine='python' , dtype = {'Day' : np.datetime64 , 'Year' : np.int}  )
Run Code Online (Sandbox Code Playgroud)

但我注意到一些列名有空格,Account id而不是Account_id

现在我得到了我的列名列表:

dwb_col= data.columns
Run Code Online (Sandbox Code Playgroud)

我想blank spaces " ""_"符号替换每个列名(即每个 dwb_col 元素)。

为了以这种方式重命名列:mydata.columns = [my_new_columns_list]

  1. 我怎样才能找到和更换零件?

  2. 在导入过程中是否有任何解决方法/快捷方式让我在“”(空格)上收集带有“_”(下划线符号)的列名称

prp*_*prp 6

这将做,使用str.replace

df.columns = df.columns.str.replace(" ", "_")
Run Code Online (Sandbox Code Playgroud)


Dat*_*ice 4

另一种方法是使用正则表达式\s+,它将匹配 1 个或多个空格,同时' '仅匹配一个

dwb_col = df.columns.str.replace('\s+', '_') 
Run Code Online (Sandbox Code Playgroud)

然后重新分配

df.columns = dwb_col
Run Code Online (Sandbox Code Playgroud)

如果您想先删除尾随或前导空格,您可以添加 str.strip

df.columns.str.strip().str.replace('\s+', '_') 
Run Code Online (Sandbox Code Playgroud)

关于数字 2,您可以导入文件并使用nrows参数仅收集前 n 行来收集列名称。

col_df = pd.read_csv(data,nrows=1)
cols = [col for col in col_df.columns.tolist() if '_' in col]
Run Code Online (Sandbox Code Playgroud)

然后读取你的数据usecols

df = pd.read_csv(data,usecols=cols)
Run Code Online (Sandbox Code Playgroud)