Python 熊猫不拆分离器
我有dataset->data.txt: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
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