如何使用标准输入功能从数据框中分割日期?

时间:2018-08-16 11:25:27

标签: python pandas stdin

我看到了Indexing and selecting data中的文档,其中涉及硬核脚本编制方法,用于从数据帧中切片一定范围的数据。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('d1.csv')

df['time']=pd.to_datetime(df['time'], unit='ns')

df = df.drop('name', 1)

df['Time'] = df['time'].dt.time

df['date'] = df['time'].dt.date
df['date'] = pd.to_datetime(df['date'])

df = df.set_index(['date'])

df= df.loc['2018-07-04':'2018-07-05']

但是我需要从标准输入功能中选择一系列数据,该如何完成:

而不是在控制台上使用df= df.loc['2018-07-04':'2018-07-05']形式的提示,而是要求Enter the start date :Enter the stop date :这样做,我将仅获得所选日期范围的数据。

我实际上是这样尝试的:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('d1.csv')

df['time']=pd.to_datetime(df['time'], unit='ns')

df = df.drop('name', 1)

df['Time'] = df['time'].dt.time

df['date'] = df['time'].dt.date
df['date'] = pd.to_datetime(df['date'])

df = df.set_index(['date'])
Starting_Date = input(" Please Enter the Starting_Date : ")
Ending_Date = input(" Please Enter the Ending_Date : ")

data = df[Starting_Date:Ending_Date]

但这不起作用...请仔细看看。

1 个答案:

答案 0 :(得分:2)

请尝试这个。日期的格式为year-month-day,例如'2018-08-16'。

from datetime import datetime

a = input('Starting_Date: ')
b = input('Ending_Date :')

starting_date = datetime.strptime(a, "%Y-%m-%d").date()
ending_date = datetime.strptime(b, "%Y-%m-%d").date()

df.loc[starting_date:ending_date]

希望对您有用:)