Python 熊猫不拆分离器

Python 熊猫不拆分离器,python,pandas,dataframe,Python,Pandas,Dataframe,我有dataset->data.txt: 4 x x1, x2, x3, x4, x5, x6, x7, x8 6 y y1, y2, y3, y4, y5, y6, y7 9 z z1, z2 这是我导入此数据的代码: df = pd.read_csv('data/xyz.txt', sep=',', names=range(20), deli

我有dataset->data.txt:

4         x                  x1, x2, x3, x4, x5, x6, x7, x8
6         y                  y1, y2, y3, y4, y5, y6, y7
9         z                  z1, z2
这是我导入此数据的代码:

df = pd.read_csv('data/xyz.txt', sep=',', names=range(20), delim_whitespace=True)
df.dropna(axis=1, how='all', inplace=True)
看起来不错,但逗号有问题

df.head()

    0   1   2   3   4   5   6   7   8   9
0   4   x   x1, x2, x3, x4, x5, x6, x7, x8
1   6   y   y1, y2, y3, y4, y5, y6, y7  NaN
2   9   z   z1, z2  NaN NaN NaN NaN NaN NaN
我的目标是从所有值中删除所有逗号。 我不能用手来做这是大数据。
我不想通过在每个值上嵌套循环来实现这一点。

这里有一个棘手的解决方案:将有问题的列子集,然后使用.apply并应用pd.Series方法.str.replace:

因此,只需使用基于loc的分配即可:

In [19]: df.loc[:, range(2, 10)] = df.loc[:,range(2, 10)].apply(lambda S: S.str.replace(',',''))

In [20]: df
Out[20]:
   0  1   2   3    4    5    6    7    8    9
0  4  x  x1  x2   x3   x4   x5   x6   x7   x8
1  6  y  y1  y2   y3   y4   y5   y6   y7  NaN
2  9  z  z1  z2  NaN  NaN  NaN  NaN  NaN  NaN
使用replace-formdataframe

df.replace({',':''},regex=True)
Out[1280]: 
   0  1   2   3    4    5    6    7    8    9
0  4  x  x1  x2   x3   x4   x5   x6   x7   x8
1  6  y  y1  y2   y3   y4   y5   y6   y7  NaN
2  9  z  z1  z2  NaN  NaN  NaN  NaN  NaN  NaN

您使用delim_whitespace=True,因此分隔符是空白。为什么文件中有混合分隔符?这是一种相当不合适的格式,您能修复生成此格式的任何内容以使用常规csv吗?我不能修复它,但我可以将delim_whitespace设置为False,然后拆分第一行。我希望有另一种选择。
df.replace({',':''},regex=True)
Out[1280]: 
   0  1   2   3    4    5    6    7    8    9
0  4  x  x1  x2   x3   x4   x5   x6   x7   x8
1  6  y  y1  y2   y3   y4   y5   y6   y7  NaN
2  9  z  z1  z2  NaN  NaN  NaN  NaN  NaN  NaN