【发布时间】:2021-12-30 08:29:30
【问题描述】:
我有以下熊猫数据框。
d = {'col1': [1, 2,3,4,5,60,0,0,6,3,2,4],'col3': [1, 22,33,44,55,60,1,5,6,3,2,4],'Name': ['22a| df a1asd_V1', 'xcd a2a_sd_V3','23vg aa_bsd_V1','22a| df a1asd_V1|5mo','a3as d_V1','aa b_12mo','aasd_V4','aa_6mo_bsd','aa_adn sd_V15',np.nan,'aasd_V12','aasd120Abs'],'Date': ['2021-06-13', '2021-06-13','2021-06-13','2021-06-14','2021-06-15','2021-06-15','2021-06-13','2021-06-16','2021-06-13','2021-06-13','2021-06-13','2021-06-16']}
dff = pd.DataFrame(data=d)
dff
col1 col3 Name Date
0 1 1 22a| df a1asd_V1 2021-06-13
1 2 22 xcd a2a_sd_V3 2021-06-13
2 3 33 23vg aa_bsd_V1 2021-06-13
3 4 44 22a| df a1asd_V1|5mo 2021-06-14
4 5 55 a3as d_V1 2021-06-15
5 60 60 aa b_12mo 2021-06-15
6 0 1 aasd_V4 2021-06-13
7 0 5 aa_6mo_bsd 2021-06-16
8 6 6 aa_adn sd_V15 2021-06-13
9 3 3 NaN 2021-06-13
10 2 2 aasd_V12 2021-06-13
11 4 4 aasd120Abs 2021-06-16
我想替换 _, |进入太空,如果有 5 个月、6 个月、12 个月 .. 进入 5 个月、6 个月、12 个月,就像 Name 列那样,并创建一个名为 New Name 的新列。就像下面的数据框。
col1 col3 Name Date NewName
0 1 1 22a| df a1asd_V1 2021-06-13 22a df a1asd V1
1 2 22 xcd a2a_sd_V3 2021-06-13 xcd a2a sd V3
2 3 33 23vg aa_bsd_V1 2021-06-13 23vg aa bsd V1
3 4 44 22a| df a1asd_V1|5mo 2021-06-14 22a df a1asd V1 5 months
4 5 55 a3as d_V1 2021-06-15 a3as d V1
5 60 60 aa b_12mo 2021-06-15 aa b 12 months
6 0 1 aasd_V4 2021-06-13 aasd V4
7 0 5 aa_6mo_bsd 2021-06-16 aa 6 months bsd
8 6 6 aa_adn sd_V15 2021-06-13 aa adn sd V15
9 3 3 NaN 2021-06-13 NaN
10 2 2 aasd_V12 2021-06-13 aasd V12
11 4 4 aasd120Abs 2021-06-16 aasd120Abs
是否可以在 lambda 函数中做到这一点?由于我的实际数据框有超过 100 万条记录,因此我需要一些高效的工作。
提前致谢!任何想法都会很合适。
【问题讨论】:
标签: python pandas string dataframe