csv.DictReader / csv.DictWriter vs熊猫库数据框-

时间:2019-03-16 14:47:13

标签: python pandas csv dictionary

我试图用Python编写一个程序,该程序将:

  • 从CSV文件读取数据,数据按日期排序
  • 通过找到最近365天(从csv文件中的最后一个数据点的日期起过去365天)来选择一些键和值,然后
  • 导出到另一个csv new_file
  • 从写入new_file的数据中绘制折线图(导出为图像文件)

我是Python的新手,并且一直在研究:

  • <form method="POST"> <?php while($service = $req->fetch()){ ?> <div class="form-control"> <input type="checkbox" class="getValue" value="<?= $service['price']; ?>"> <label><?= $service['service']; ?></label> <strong><?= $service['price']; ?>€</strong> </div> <?php } ?> <button type="button" name="submit" class="btn btn-warning" id="submit">Submit</button> </form> $(document).ready(function(){ $('#submit').click(function(e){ e.preventDefault(); // annul action par défaut du button var values = []; $('.getValue').each(function(){ if($(this).is(":checked")){ values.push($(this).val()); } }); values = values.toString(); // PROBLEME HERE: $.ajax({ url:"addServicesRequest.php", method:"POST", data:{values:values}, success:function(data){ alert("ok"); } }); }); }); / csv.DictReader(csv_file)
  • 熊猫图书馆csv.DictWriter

我的问题是哪种数据结构最适合我想要实现的目标:字典或熊猫数据框?

到目前为止,我发现Panda DataFrame结构非常麻烦。我该如何选择最近数据点的日期(和格式)之后的365天。

样本数据输入:

DataFrame

1 个答案:

答案 0 :(得分:0)

熊猫有一些学习曲线,但是一旦您适应了它们,就会爱上它们。查看解决您的问题的一种简单方法。干杯。

import pandas as pd
import matplotlib.pyplot as plt
from datetime import timedelta

df = pd.read_csv(r"your-folder\dates.csv", parse_dates=[0]) # assuming dates are in the first column
df.sort_values(by="date", ascending=False, inplace=True)
last_date = df["date"].max().date()
start_date = df["date"].max().date() - timedelta(days=365)
dfRange = df[(df["date"].dt.date >= start_date) & (df["date"].dt.date <= last_date)]

plt.scatter(dfRange["txCount"],dfRange["txVolume(USD)"])
plt.xlabel("txCount")
plt.ylabel("txVolume(USD)")
plt.savefig(r"target-location\dates.png")
plt.close()