Python 如何在带有熊猫的csv文件中选择特定日期范围?

Python 如何在带有熊猫的csv文件中选择特定日期范围?,python,pandas,plot,Python,Pandas,Plot,我对Python不熟悉,不熟悉如何使用csv文件。我想找到一种方法,通过选择特定的日期范围来打印我的图表,例如2013-03-20:2014-03-04 代码如下: import pandas as pd import matplotlib.pyplot as plt prc=pd.read_csv("csv",parse_dates=True, nrows=150, usecols=["Close"]) prc_ma=prc.rolling(5).mean() plt.plot(prc

我对Python不熟悉,不熟悉如何使用csv文件。我想找到一种方法,通过选择特定的日期范围来打印我的图表,例如2013-03-20:2014-03-04

代码如下:

import pandas as pd
import matplotlib.pyplot as plt

prc=pd.read_csv("csv",parse_dates=True, nrows=150, usecols=["Close"])

prc_ma=prc.rolling(5).mean()


plt.plot(prc, color="blue", label="Price")
plt.plot(prc_ma, color="red", label="Moving Average")
plt.xlabel("Date")
plt.ylabel("Price")
plt.title("Moving Average")
plt.grid()
我目前正在使用参数nrows


谢谢

只需使用
.loc
过滤日期,假设日期时间是数据帧的索引:

prc = pd.read_csv("csv", parse_dates=True, nrows=150, usecols=["Close"])

prc_sub = prc.loc['2013-03-20':'2014-03-04']
用2013年和2014年所有日期的随机数据进行演示:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.width', 1000)
np.random.seed(1001)

prc = pd.DataFrame({'PRICE': abs(np.random.randn(730))}, 
                    index=pd.date_range("2013-01-01", "2014-12-31", freq="D"))

# SUBSETTED DATAFRAME
prc_sub = prc.loc['2013-03-20':'2014-03-04']

prc_ma = prc_sub.rolling(5).mean()

plt.plot(prc_sub, color="blue", label="Price")
plt.plot(prc_ma, color="red", label="Moving Average")
plt.xlabel("Date")
plt.ylabel("Price")
plt.title("Moving Average")
plt.grid()

完美使用loc!我可能会在('2013-03-20','2014-03-04')之间创建一个带有
m=prc.index.to_series()的掩码。
。但这更具可读性@AntonvBR。。。事实上,如果日期不是索引,则需要使用带掩码的布尔索引。让我们等待OP的确认。我似乎无法让它使用.loc属性。原始数据中会有问题吗?我是否正确理解,以#subseted DATAFRAME之前的代码为例?请发布几行prc。要使用回答中提到的
.loc
,prc的索引必须是datetime。结构与随机数示例相似吗?下面的部分是
.loc
的演示。对于作为OP的您,请忽略此部分并使用您自己的数据。未来的读者可能会发现它很有用