如何在Python pandas DataFrame中切割列值

4

I have a dataframe like this-

element id  year    month   days    tmax    tmin
0   MX17004 2010    1   d1          NaN      NaN
1   MX17004 2010    1   d10         NaN      NaN
2   MX17004 2010    1   d11         NaN      NaN
3   MX17004 2010    1   d12         NaN      NaN
4   MX17004 2010    1   d13         NaN      NaN

我希望进一步将“天数”列拆分成如下形式:

days
1
10
11
12
13

我尝试了几种方法,但是没有成功获取输出。请问有人可以帮忙或者提供一些线索吗?

2个回答

18

通过使用 str 切片

df.days=df.days.str[1:]
df
Out[759]: 
   element       id  year  month days  tmax  tmin
0        0  MX17004  2010      1    1   NaN   NaN
1        1  MX17004  2010      1   10   NaN   NaN
2        2  MX17004  2010      1   11   NaN   NaN
3        3  MX17004  2010      1   12   NaN   NaN
4        4  MX17004  2010      1   13   NaN   NaN

@DipanjanSaha 不客气~ :-) ,如果有帮助的话,您能考虑接受它吗? - BENY
是的,请。您还可以推荐一些关于Pandas主要用于数据清洗的好书/YouTube频道/资源吗? - dsk
@DipanjanSaha 我会推荐 https://www.amazon.com/dp/1784393878/?tag=stackoverflow17-20 - BENY

0

使用正则表达式和 extract 方法:

df['days'] = df.days.str.extract('d(\d+)', expand=False)
print(df)

输出:

   element       id  year  month days  tmax  tmin
0        0  MX17004  2010      1    1   NaN   NaN
1        1  MX17004  2010      1   10   NaN   NaN
2        2  MX17004  2010      1   11   NaN   NaN
3        3  MX17004  2010      1   12   NaN   NaN
4        4  MX17004  2010      1   13   NaN   NaN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接