Pandas 使用通配符左右去除字符

Pandas Strip Characters Left and Right Using Wildcards

我正在尝试删除 df 列左侧和右侧的字符,这些字符在大型 DF 的行中不断重复。前导数字也会发生变化,所以这并不容易。我的数据如下所示:

128544  20210831  2200    882.2          342259.UNITED STATES.LAKERS.NBA.csv
128545  20210831  2300    918.9          342259.UNITED STATES.LAKERS.NBA.csv
128546  20210901     0      NaN          544257.UNITED STATES.CELTICS.NBA.csv
128547  20210901   100      NaN          544257.UNITED STATES.CELTICS.NBA.csv

我需要剥离字符 DF“df”看起来像这样:

        col1      col2    col3           col4
128544  20210831  2200    882.2          LAKERS
128545  20210831  2300    918.9          LAKERS
128546  20210901     0      NaN          CELTICS
128547  20210901   100      NaN          CELTICS

我试过了 - df['col4'] = df.col4.str.replace(".NBA").*","")

它给了我右半部分,但我看不出如何去除左侧或同时去除两者。

感谢您的帮助,

试试 split

df['col4'] = df.col4.str.split('.').str[2]

或者为了获得更精确的匹配,请尝试使用 .str.extract,因为您正在研究正则表达式:

>>> df['col4'] = df['col4'].str.extract('\d+\.UNITED STATES\.(.*)\.NBA\.csv')[0]
>>> df
     col0      col1  col2   col3     col4
0  128544  20210831  2200  882.2   LAKERS
1  128545  20210831  2300  918.9   LAKERS
2  128546  20210901     0    NaN  CELTICS
3  128547  20210901   100    NaN  CELTICS