Python转置,列名在dataframe记录里面

Python transpose, column name are inside the dataframe records

我很确定我在这里遗漏了一些非常基本的东西,但我并没有真正在 pandas 文档中找到我要找的东西。

我下载了一个 ForEx 数据框,并想保存它,但在我这样做之前,我必须将它格式化为 8 columns/X 行,matrix/data-frame/vector(行数为需要)。我把它作为一行,每条记录旁边都有他的列名。 (我可以将其保存为 .CSV)

我在这里的力量是 .transpose,它本身并不能解决问题。

我已经成功了一次,但我似乎忘记保存代码了,那是一段时间前的事了……但多亏了这个,我可以给你看一个我读到的旧 csv python,并显示我想要如何格式化它。

(列名: Index(不是真正的列,它只是索引),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 += '&currencyPair=' + 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

以此类推剩余的列

正如 Parfait 所说,您的数据是 JSON 格式,而不是 CSV。因此使用 pandas 的 read_json 函数而不是 from_csv.

导入整个 pandas 模块:

import pandas as pd

将 JSON 数据转换为 DataFrame:

if csv.ok:
    return pd.read_json(StringIO(csv.text))
else:
    return None

这将 return 一个完全符合您所需格式的 DataFrame:

        close                date      high       low      open  quoteVolume
0    0.000073 2015-08-08 08:00:00  0.000073  0.000073  0.000073     0.000000   
1    0.000073 2015-08-08 08:05:00  0.000073  0.000073  0.000073     0.000000   
2    0.000073 2015-08-08 08:10:00  0.000073  0.000073  0.000073     0.000000