首页 > 解决方案 > csv.DictReader / csv.DictWriter vs Panda 库数据 Frame -

问题描述

我正在尝试用 Python 编写一个程序,它将:

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

我的问题是哪种数据结构最适合我想要实现的目标:字典还是 Panda DataFrames?

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

样本数据输入:

date    txVolume(USD)   adjustedTxVolume(USD)   txCount marketcap(USD)  price(USD)  exchangeVolume(USD) generatedCoins  fees    activeAddresses averageDifficulty   paymentCount    medianTxValue(USD)  medianFee   blockSize   blockCount
04/05/2018  7837824038  4235399151  218931  1.65E+11    9695.5  8217829888  1725    39.37853649 695603  4.02E+12    395233  395.3934459 4.04E-05    134387026   138

标签: pythonpandascsvdictionary

解决方案


Pandas 有一些学习曲线,但一旦你对它们感到满意,你就会爱上它们。查看您的问题的一种简单解决方案。干杯。

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()

推荐阅读