Как преобразовать строки панд в столбцы

У меня есть датафрейм, как это:

0   {

1   "Meta Data": {

2   "1. Information": "Intraday (5min) ope...
3   "2. Symbol": "SPY",

4   "3. Last Refreshed": "2020-02-12 16:00...
5   "4. Interval": "5min",

6   "5. Output Size": "Full size",

7   "6. Time Zone": "US/Eastern"

8   },

9   "Time Series (5min)": {

10  "2020-02-12 16:00:00": {

11  "1. open": "337.6300",

12  "2. high": "337.6500",

13  "3. low": "337.3800",

14  "4. close": "337.4100",

15  "5. volume": "2441804"

16  },

17  "2020-02-12 15:55:00": {

18  "1. open": "337.3700",

19  "2. high": "337.6500",

20  "3. low": "337.3600",

21  "4. close": "337.6250",

22  "5. volume": "1282631"

23  },

24  "2020-02-12 15:50:00": {

25  "1. open": "337.4050",

26  "2. high": "337.4800",

27  "3. low": "337.3400",

28  "4. close": "337.3600",

29  "5. volume": "1078047"

30  },

31  "2020-02-12 15:45:00": {

32  "1. open": "337.3150",

33  "2. high": "337.4300",

34  "3. low": "337.2900",

35  "4. close": "337.4020",

36  "5. volume": "434710"

37  },

......
}

}

Я хочу преобразовать вышеуказанные данные в такой формат:

введите описание изображения здесь

Я знаю, как удалить 1. 2. 3., но не знаю, как нацелить эти метки времени на «2020-02-12 16:00:00», потому что они отличаются в каждой строке и не имеют фиксированного имени, например "1.open" ... "4.close"

Очень ценю вашу помощь!

Всего 1 ответ


Похоже на данные либо из Quandl, либо из Alpha Vantage (точно не помню, какой именно, только потому, что я действительно ненавидел формат, когда мне приходилось с ним работать).

Предполагая, что вы уже декодировали ответ JSON в словарь с именем data :

time_series = data['Time Series (5min)']
df = pd.DataFrame(time_series.values(), time_series.keys())

# Remove the "1. ", "2. ", etc.
df.columns = df.columns.str.extract('d+. (.+)', expand=False)

# Convert the index to timestamp
df.index = pd.to_datetime(df.index)
df.index.name = 'timestamp'

df = df.reset_index()

Есть идеи?

10000