我使用以下命令导入了.csv文件:
mydata = pd.read_csv(file ,sep='\t' , engine='python' , dtype = {'Day' : np.datetime64 , 'Year' : np.int} )
但是我注意到某些列名不是Account id
而是Account_id
这样的空格
现在我得到了我的列名列表:
dwb_col= data.columns
我想在每个列名称(即每个dwb_col元素)上用blank spaces " "
替换"_"
。
以这种方式重命名列: mydata.columns = [my_new_columns_list]
我该如何查找和替换零件?
在导入过程中是否有任何变通方法/快捷方式,可以让我使用“ _”(下划线符号)在“ “(空格)?
答案 0 :(得分:3)
这可以使用str.replace
:
df.columns = df.columns.str.replace(" ", "_")
答案 1 :(得分:2)
尝试一下,假设您的列名是这样的
l = ["hello world","hello cat"]
cols = ['_'.join(i.split()) for i in l]
#outout
['hello_world', 'hello_cat']
答案 2 :(得分:1)
另一种方法是使用正则表达式\s+
,它将匹配1个或多个空格,而' '
仅匹配一个空格
dwb_col = df.columns.str.replace('\s+', '_')
然后重新分配
df.columns = dwb_col
如果您有尾随空格或前导空格要先删除,则可以添加
str.strip
df.columns.str.strip().str.replace('\s+', '_')
关于编号2,您可以导入文件并使用nrows
参数仅收集前n行以收集列名。
col_df = pd.read_csv(data,nrows=1)
cols = [col for col in col_df.columns.tolist() if '_' in col]
然后使用usecols
df = pd.read_csv(data,usecols=cols)