繁体   English   中英

如何使用 Python Pandas 将 csv 中的列转换为年、月、周的字符串值?

[英]How can i convert column into days in csv having string values in years , months , weeks using Python Pandas?

我已经尝试使用 python 如下:

import pandas as pd

df = pd.read_csv("master_list.csv", usecols = ['Duration'])
#month manipulation starts
df[df['Duration'].fillna('').str.contains('Months') & df['Duration'].fillna('').str.len().gt(0)]
df["Duration"] = df["Duration"].str.replace("\sMonths", "")
df['Duration'] = pd.to_numeric(df['Duration'], errors='coerce').fillna(0).astype(float)
df['Duration'] *= 30.436875
#month manipulation end
df[df['Duration'].fillna('').str.contains('Weeks') & df['Duration'].fillna('').str.len().gt(0)]
df["Duration"] = df["Duration"].str.replace("\sWeeks", "")
#df['Duration'] *= 30.436875

print(df)
Sample_Data = ["7 Months","1 Year","8 Weeks","3 Days"]
Expected Output = ["210 Days","365 Days","56 Days","3 Days"]

模块dateparser可以解析带有weeksyearsmonthsdays等的文本。

import dateparser
import datetime

sample_data = ["7 Months","1 Year","8 Weeks","3 Days"]

today = datetime.datetime.now()

for item in sample_data:
    result = dateparser.parse(item)
    diff = today.date() - result.date()
    print(item, '|', diff.days)

结果:

7 Months | 212
1 Year | 365
8 Weeks | 56
3 Days | 3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM