如何将Inrinio api响应转换为数据框?

时间:2019-01-23 02:59:03

标签: python pandas api

将Intrinio apiresponse转换为数据帧,但是我在转换显然是字典的数据列表时遇到了麻烦。

想将此列表转换为按日期排序且仅使用adj_close的pandas数据框。

RefreshControl

如何将列表转换为按“日期”组织的数据集?

将列表转换为DataFrame之后

现在是

import React, { Component } from 'react';
import { View, KeyboardAvoidingView, TextInput, RefreshControl, Button, ScrollView } from 'react-native';

export default class Authenticate extends Component {
  constructor(props) {
    super(props);
    this.state = {
      refreshing: false
    };
  }

  render() {
    return (
      <KeyboardAvoidingView enabled style={{ flex: 1 }}>
        <ScrollView
          contentContainerStyle={{ flex: 1, backgroundColor: 'gray', justifyContent: 'space-between' }}
          refreshControl={<RefreshControl refreshing={this.state.refreshing} />}>
          <View style={{ height: 200, backgroundColor: 'red' }}>
            <TextInput
              style={{
                height: 60,
                color: 'white',
                backgroundColor: 'gray',
                fontSize: 20,
                textAlign: 'center'
              }}
              value="Press Me"
            />
          </View>
          <Button style={{ backgroundColor: 'blue', width: '100%' }} title="Footer button" />
        </ScrollView>
      </KeyboardAvoidingView>
    );
  }
}

我无法使用sort_values,因为它显示了KeyError:'date' 因为它们在支架内。有什么建议要删除括号吗?

3 个答案:

答案 0 :(得分:1)

您只需要pd.DataFramesort_values

df=pd.DataFrame(stockprice).sort_values(['adj_close','date'])
df
    adj_close    adj_high     adj_low     ...         low    open      volume
1  226.469813  228.622302  225.562977     ...      226.35  227.95  23600802.0
0  228.482789  229.200286  225.842003     ...      226.63  227.25  24788170.0
[2 rows x 13 columns]

答案 1 :(得分:0)

因此,我找到了一种解决方法,方法是创建两个列表,然后在创建数据框之前将日期和adj_close附加到每个列表中

date = []
close= []
for data in stocks:
    date.append(data.date)
    close.append(data.adj_close)

stockdata = pd.DataFrame(date, close).reset_index()
stockdata.columns = ['close','date']
stockdata = stockdata.set_index('date')

所以不用说这是太多的编码。任何意见?文本提供的答案显示

KeyError:“日期”

答案 2 :(得分:0)

这可以解决问题:

>>> s = b'\x80'
>>> s.decode('utf8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte

希望它会有所帮助:)