小编jmo*_*mon的帖子

根据不同数据框中的匹配值将汇总列添加到 Pandas 数据框中

我有一个 DataFrame 表示项目成员和项目开始日期,还有一个 DataFrame 表示出生日期。我试图根据每个项目的开始添加一些列,指示某些年龄组的总人数。

print(projects)
           Start  John  Bob  Gladys
Project                               
A     2014-01-08     1    0       0
B     2016-08-09     0    1       1
C     2018-02-06     0    1       0

print(birthdays)
             birth
name              
John    1983-04-06
Gladys  1969-08-02
Bob     1946-11-03
Run Code Online (Sandbox Code Playgroud)

我已经考虑过使用.apply().iterrows()方法,但我什至很难从哪里开始。真正的 DataFrame 有更多的列和行,所以我需要避免按名称调用任何列。

这就是我想要完成的:

              Start  John  Bob  Gladys  25-34  35-45  46-55  56+
Project                                                         
A        2014-01-08     1    0       0      1      0      0    0
B        2016-08-09     0    1       1      0      0      1    1
C        2018-02-06     0    1       0      0      0      0    1
Run Code Online (Sandbox Code Playgroud)

关于从哪里开始的任何建议?

python dataframe python-3.x pandas

5
推荐指数
0
解决办法
120
查看次数

如何在 pandas 替换功能中使用正则表达式捕获组

我有一个 pandas DataFrame,它使用“2Nd”而不是“2nd”,“136Th”而不是“136th”等。我希望紧随数字后面的字母是小写的。

样本数据:

data = pd.Series(['21St StNew York', 'Exampe BlvdSt Louis', '1St Rd'])
Run Code Online (Sandbox Code Playgroud)

期望的输出:

['21st StNew York', 'Exampe BlvdSt Louis', '1st Rd']
Run Code Online (Sandbox Code Playgroud)

尝试使用str.replace()

data = data.str.replace('\BSt', 'st', regex=True)
['21st StNew York', 'Exampe Blvdst Louis', '1st Rd']
Run Code Online (Sandbox Code Playgroud)

是否可以使用捕获组?

data = data.str.replace('[0-9]+(St)', 'st', regex=True)
['st StNew York', 'Exampe BlvdSt Louis', 'st Rd']
Run Code Online (Sandbox Code Playgroud)

python regex pandas

5
推荐指数
1
解决办法
1498
查看次数

标签 统计

pandas ×2

python ×2

dataframe ×1

python-3.x ×1

regex ×1