gpt4 book ai didi

python - 从 Pandas 列中的字符串中选择两个时间段的单词并转换为天数

转载 作者:行者123 更新时间:2023-12-04 13:06:59 24 4
gpt4 key购买 nike

df.column_1:
had 2 months of ownership
had 1 week of ownership
had 2 years of ownership

我想在 df.column_1 中将所有权时间转换为日期。预期的输出是:

df.column_1:
60
7
730

以下是我目前所拥有的:

df['column_1'] = df['column_1'].str.split(r'\D').str.get(1)

但这只给出了第二个字符串(例如 2, 1, 2)。我计划获取第二个和第三个字符串(例如 2 个月)并将它们转换为日期。

最佳答案

您可以使用 str.extract()提取数字和期间文本(日/周/月/年)。然后,将句点文本替换为乘号 *,后跟相应的天数以构成公式(例如,2 *30 表示 2 个月)。然后,使用 pd.eval评估公式的值:

df['result'] = (df['column_1'].str.extract(r'(\d+\s*\w+)')[0]
.replace({r'days?': '*1',
r'weeks?': '*7',
r'fortnights?': '*14',
r'months?': '*30',
r'years?': '*365'}, regex=True)
.apply(pd.eval)
)

结果:

print(df)

column_1 result
0 had 2 months of ownership 60
1 had 1 week of ownership 7
2 had 2 years of ownership 730

关于python - 从 Pandas 列中的字符串中选择两个时间段的单词并转换为天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68968586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com