没有像 sep=None 这样的分隔符或如何删除逗号?

Nothing as delimiter like sep=None or how to remove comma?

我正在从 2 个 csv 文件中计算笛卡尔积,每 1 列。结果应该是一个新的 csv,其中包含 1 列,其中包含所有产品。 由于默认分隔符是逗号并且不允许使用 sep=None 或类似的分隔符,因此如何将产品放在一列中而没有任何逗号? 首先,我认为导入的文件 00 会有定界符,但带有 replacedelim_whitespace=False 我想我确定它不是来自那里(它无论如何只有一列)。 我还尝试将最终文件的第 1 列和第 2 列与笛卡尔积合并或连接,但不知道如何操作。此外,我用 replace(",", "") 尝试了它,但它并没有改变结果。

这是代码:

import pandas as pd

vornamen = pd.read_csv(...[=11=].csv",header=None, encoding= 'unicode_escape')
nachnamen = pd.read_csv(....csv",header=None, encoding= 'unicode_escape')

vornamen['_tmp'] = 1
nachnamen['_tmp'] = 1

df = pd.merge(vornamen,nachnamen,on='_tmp').drop('_tmp',axis=1)
df.to_csv(....csv",header=None,index=False, sep="\t")

由于 df.to_csv 方法创建的是 CSV 文件,因此它会在输出文件中创建与数据框中相同数量的列。由于 df 数据框中有 2 列,pandas 将尝试保存 2 列:

...

>>> df = pd.merge(vornamen,nachnamen,on='_tmp').drop('mp',axis=1)
>>> df
   0_x      0_y
0  Jan     Hart
1  Jan  Johnson
2  Bob     Hart
3  Bob  Johnson

为了只有一个列,您可以将这两列组合成一个 pandas 系列对象,如下所示:

>>> names = (df['0_x'] + ' ' + df['0_y'])
>>> names
0       Jan Hart
1    Jan Johnson
2       Bob Hart
3    Bob Johnson
dtype: object

>>> names.to_csv('names.csv', header=None, index=False)

如果您随后检查 names.csv 文件,您可以看到它包含 2 个文件中所有名称的乘积:

➜  ~ cat names.csv
Jan Hart
Jan Johnson
Bob Hart
Bob Johnson