没有像 sep=None 这样的分隔符或如何删除逗号?
Nothing as delimiter like sep=None or how to remove comma?
我正在从 2 个 csv 文件中计算笛卡尔积,每 1 列。结果应该是一个新的 csv,其中包含 1 列,其中包含所有产品。
由于默认分隔符是逗号并且不允许使用 sep=None
或类似的分隔符,因此如何将产品放在一列中而没有任何逗号?
首先,我认为导入的文件 00
会有定界符,但带有 replace
和 delim_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
我正在从 2 个 csv 文件中计算笛卡尔积,每 1 列。结果应该是一个新的 csv,其中包含 1 列,其中包含所有产品。
由于默认分隔符是逗号并且不允许使用 sep=None
或类似的分隔符,因此如何将产品放在一列中而没有任何逗号?
首先,我认为导入的文件 00
会有定界符,但带有 replace
和 delim_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