pandas-带状空白
我正在使用pythoncsvkit
比较2个文件,如下所示:
df1 = pd.read_csv('input1.csv', sep=',\s+', delimiter=',', encoding="utf-8")
df2 = pd.read_csv('input2.csv', sep=',\s,', delimiter=',', encoding="utf-8")
df3 = pd.merge(df1,df2, on='employee_id', how='right')
df3.to_csv('output.csv', encoding='utf-8', index=False)
目前,我正在通过脚本(从employee_id
列中删除空格)之前运行文件。
employee_id
s的示例:
37 78973 3
23787
2 22 3
123
有办法csvkit
做到这一点并为我节省一步吗?
-
您可以
strip()
使用.str.strip()在Pandas中整个系列:df1['employee_id'] = df1['employee_id'].str.strip() df2['employee_id'] = df2['employee_id'].str.strip()
这将消除导致/在后的空格
employee_id
中柱都df1
与df2
或者,您可以修改
read_csv
行以同时使用skipinitialspace=True
df1 = pd.read_csv('input1.csv', sep=',\s+', delimiter=',', encoding="utf-8", skipinitialspace=True) df2 = pd.read_csv('input2.csv', sep=',\s,', delimiter=',', encoding="utf-8", skipinitialspace=True)
您似乎正在尝试删除包含数字的字符串中的空格。您可以通过以下方式做到这一点:
df1['employee_id'] = df1['employee_id'].str.replace(" ","") df2['employee_id'] = df2['employee_id'].str.replace(" ","")