Python 使用pandas拆分多个列

Python 使用pandas拆分多个列,python,python-2.7,pandas,dataframe,Python,Python 2.7,Pandas,Dataframe,我想把字符串分成几列。例如,我想在下面的dataframe中从col2、col3和col5中选择一些信息(但实际上我有超过一百列这样做) 我只需要那根长弦的前3个标记。然后我希望我能从我的结果中看到如下 col1 col2 col3 col4 col5 .... USA 0|0 1|0 done 2|0 .... AGN 1|0 0|2 done 1|0 .... 有什么提示吗?如果我正确理解了你的问题,你可以这样做: In [254]: d.repla

我想把字符串分成几列。例如,我想在下面的dataframe中从col2、col3和col5中选择一些信息(但实际上我有超过一百列这样做)

我只需要那根长弦的前3个标记。然后我希望我能从我的结果中看到如下

col1 col2  col3  col4  col5  ....
USA   0|0   1|0  done   2|0  ....
AGN   1|0   0|2  done   1|0  ....

有什么提示吗?

如果我正确理解了你的问题,你可以这样做:

In [254]: d.replace(r':.*', '', regex=True)
Out[254]:
  col1 col2 col3  col4 col5
0  USA  0|0  1|0  done  2|0
1  AGN  1|0  0|2  done  1|0

要获取前三个字符串,请执行以下操作:

>>> d.col2.str[:3]
0    0|0
1    1|0
Name: col2, dtype: object
在“:”上拆分并获取第一项:

>>> d.col2.str.split(':', expand=True)[0]
0    0|0
1    1|0
Name: 0, dtype: object
要将其应用于一组列,请执行以下操作:

cols = ['col2', 'col3', 'col5']
d.loc[:, cols] = d.loc[:, cols].apply(lambda s: s.str[:3])

>>> d
  col1 col2 col3  col4 col5
0  USA  0|0  1|0  done  2|0
1  AGN  1|0  0|2  done  1|0
cols = ['col2', 'col3', 'col5']
d.loc[:, cols] = d.loc[:, cols].apply(lambda s: s.str[:3])

>>> d
  col1 col2 col3  col4 col5
0  USA  0|0  1|0  done  2|0
1  AGN  1|0  0|2  done  1|0