python - 从 csv 文件行中的日期切片

标签 python pandas matplotlib

    date    LEV1    LEV2    LEV3    L2  L3  L4
2013-01-01 1:00 266.591 266.591 266.591 1000    1200    1400
2013-01-01 2:00 266.479 266.479 266.479 1000    1200    1400
2013-01-01 3:00 266.373 266.373 266.373 1000    1200    1400
2013-01-01 4:00 266.273 266.273 266.273 1000    1200    1400
2013-01-01 5:00 266.178 266.178 266.178 1000    1200    1400
2013-01-01 6:00 265.05  265.05  265.05  1000    1200    1400
2013-01-01 7:00 266.065 266.065 266.065 1000    1200    1400

我想选择数据(来自 pandas dataframe)并将其绘制为所选范围内多个数字每小时的 X 和 Y(比如 2013-01-01 20:00到 2013-01-02 15:00)

我想根据第 2~4 列值的选定范围选择行作为 X 轴,每行有 3 条记录 [273.548 273.322 272.8313] 和

对于相同的日期范围,另一组行作为 Y 轴 例如[1000 1200 1400] 用于第 39~41 列的值。我试过

import pandas as pd

dft = pd.read_table("3year.csv", sep=" ",delimiter =",")
J = dft[['LEV1','LEV2', 'LEV3']].as_matrix()
G = dft[['L2','L3','L4']].as_matrix()
print J




 [ 270.     270.     270.]
 [ 270.     270.     270.]
 [ 270.     270.     270.]
 ..., 
 [ 273.548  273.322  272.831]
 [ 273.575  273.289  272.634]
 [ 273.598  273.254  272.43]]

但我无法根据日期进行选择,因为它会选择相关列的所有数据

最佳答案

必须有多种(和更聪明的)方法来实现您的目标。但我将向您展示一个使用 Pandas 的可能示例 datetimeIndex .

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

selector_LEV = (df['LEV1'] <= 266.373) & (df['LEV2'] <= 266.373) & (df['LEV3'] <= 266.373)
selector_L = (df['L2'] == 1000) & (df['L3'] == 1200) & (df['L4'] == 1400)

df[selector_LEV & selector_L]['20130101':]

    LEV1    LEV2    LEV3    L2  L3  L4
date                        
2013-01-01 03:00:00 266.373 266.373 266.373 1000    1200    1400
2013-01-01 04:00:00 266.273 266.273 266.273 1000    1200    1400
2013-01-01 05:00:00 266.178 266.178 266.178 1000    1200    1400
2013-01-01 06:00:00 265.050 265.050 265.050 1000    1200    1400
2013-01-01 07:00:00 266.065 266.065 266.065 1000    1200    1400

现在您可以更进一步,或者直接使用 pandas 绘图功能(大概是基于 matplotlib)进行绘图,例如 df[selector_LEV & selector_L]['20130101':].plot() .

关于python - 从 csv 文件行中的日期切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48435894/

相关文章:

python - Matplotlib动画: interactive zoom/pan with blitting does not work

Python 将年中的某一天转换为轴上的月份

python - PyScripter 的 Rpyc

python - 没有名为 igraph 的模块 - 错误

python - 如何合并2个具有不同列的 boolean 数据框?

python - 如何在 Python DataFrame 中的确定行之前添加空行?

python - 复制并转换 Pandas 数据框中的所有值

python - 用户警告 : FixedFormatter should only be used together with FixedLocator

python - 类型错误 : Timestamp subtraction

python - 如何遍历 pandas 组并检查每个组中是否有字符串?