pandas-带状空白

发布于 2021-01-29 18:15:00

我正在使用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_ids的示例:

37 78973 3
23787
2 22 3
123

有办法csvkit做到这一点并为我节省一步吗?

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以strip()使用.str.strip()在Pandas中整个系列:

    df1['employee_id'] = df1['employee_id'].str.strip()
    df2['employee_id'] = df2['employee_id'].str.strip()
    

    这将消除导致/在后的空格employee_id中柱都df1df2

    或者,您可以修改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(" ","")
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看