簡體   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