【发布时间】:2017-04-18 18:40:38
【问题描述】:
我很确定我在这里遗漏了一些非常基本的东西,但我并没有真正在 pandas 文档中找到我想要的东西。
我下载了一个 ForEx 数据框,并想保存它,但在此之前,我必须将其格式化为 8 列/X 行、矩阵/数据框/向量(根据需要多少行) .我把它作为一行,每条记录旁边都有他的列名。 (我可以将其保存为 .CSV)
我在这里的能力是 .transpose,单靠它是行不通的。
我已经成功了一次,但我似乎忘记了保存代码,而且已经有一段时间了....但多亏了这个,我可以向您展示我读入 python 的旧 csv,并展示如何我想格式化它。
(列名:索引(不是真正的列,只是索引),close,date,high,low,open,close,qouteVolume,volume,weightedAvarage)
source_df = get_ForEx_data(**params)
list(source_df )
list(TransposedData)
TransposedData = source_df .transpose()
编辑:(从互联网获取数据的功能)
def get_poloinex_data(s, a, b, c):
import requests
from pandas import DataFrame
from io import StringIO
url = 'https://poloniex.com/public?command=returnChartData'
url += '¤cyPair=' + s #USDT a dollár
url += '&start=' + a
url += '&end=' + b
url += '&period=' + c
csv = requests.get(url)
if csv.ok:
return DataFrame.from_csv(StringIO(csv.text), sep=',') #Separátor itt!
else:
return None
我用这个得到的数据在python中是这样的:
Columns: [high:1.85, low:0.50000021, open:1.65, close:1.85, volume:144.42819254, quoteVolume:84.01638508, weightedAverage:1.71904792}, {"date":1439020800, high:1.7, low:1.40000001, open:1.7, close:1.40000001, volume:129.57577588, quoteVolume:92.52305316, weightedAverage:1.40047016}, {"date":1439035200, high:1.40000001, low:1.40000001.1, open:1.40000001, close:1.40000001.1, volume:0, quoteVolume:0, weightedAverage:1.40000001}, {"date":1439049600, high:1.40000001.1, low:1.40000001.2, open:1.40000001.1, close:1.40000001.2, volume:0.1, quoteVolume:0.1, weightedAverage:1.40000001}.1, {"date":....
我要找的是这样的:
close date high low open \
0 1.850000 2015-08-08 04:00:00 1.850000 0.500000 1.650000
1 1.400000 2015-08-08 08:00:00 1.700000 1.400000 1.700000
2 1.400000 2015-08-08 12:00:00 1.400000 1.400000 1.400000
3 1.400000 2015-08-08 16:00:00 1.400000 1.400000 1.400000
其余列依此类推
【问题讨论】:
-
什么是
get_ForEx_data()?这是您创建的运行某种类型的 API 来下载数据的方法吗?请在任何 pandas 工作之前显示实际的源数据(不是屏幕截图,而是发布的文本)。 -
是的,对不起,我输错了 ForEx,我用它来从 polinex 获取加密货币数据(我有两个,它们是相同的,只是 URL 不同)稍后会编辑(编辑:我无法将代码发布到 cmets?edit2:哦,它太长了,抱歉,如果有人感兴趣,请按 Ctrl+K)
-
能看到返回请求的数据吗?只需转储几行,然后在工具栏中编码格式
{}。 -
对不起,我尝试在评论中添加要求的信息,但最后我决定将其添加到主要问题中(字符限制存在问题)
-
您的 API 请求是 json 格式,pandas 有很棒的 json 工具。但是,此 json 无效,因为字符串标识符必须用引号括起来,并且只有 date 是。另外,外部 Columns 必须包含在容器中。要么您在此处的帖子中删除了它,要么它的来源无效。
标签: python csv pandas transpose