首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使pandas数据帧保持常量并在函数外使用?

如何使pandas数据帧保持常量并在函数外使用?
EN

Stack Overflow用户
提问于 2019-04-24 06:35:35
回答 1查看 1.2K关注 0票数 0

我正在对coinmarketcap.com进行API调用,并将返回的JSON对象转换为pandas数据帧。我想知道是否有任何方法可以将数据框列存储为常量并在函数外部使用它?

代码语言:javascript
运行
复制
def get_cmc_supply():
    url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest'
    parameters = {
      'start': '13',
      'limit': '13',
      'convert': 'USD',
    }
    header = {
      'Accepts': 'application/json',
      'X-CMC_PRO_API_KEY': '###################',
    }

    data = requests.get(url, headers = header,timeout=10).json()

    records = []

    for item in data["data"]:
        records.append(
            {
                "name": item['symbol'],
                "supply": item['circulating_supply'],
            }
        )

    df = pd.DataFrame.from_records(records)
    df = df.rename(columns={"name":"symbol"})
    df = df.set_index('symbol')
    return df

get_cmc_supply()

我如何存储df,这样我就可以在函数外部访问它,而不需要再次调用get_cmc_supply()函数并从API调用中获得新的供应数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 07:28:33

如果我理解的话,您希望在函数外部保存DataFrame,这样您就不必再次重新创建它。

在函数外部设置数据帧。

代码语言:javascript
运行
复制
df = get_cmc_supply()

现在,您可以随时使用它。

如果您想在关闭程序后将其存储起来以备将来使用,则可以使用pickle。

保存数据帧(df)以供下次使用

代码语言:javascript
运行
复制
filename = "your_file_name.pickle"
with open(filename, "wb") as f:
    pickle.dump(df, f)

使用此选项查看"your_file_name.pickle“文件。从pickle文件中打开现有的原始数据。

代码语言:javascript
运行
复制
filename = "your_file_name.pickle"
infile = open(filename, "rb")
df = pickle.load(infile)
infile.close()

如果您真的希望使数据帧不可变,请查看static frame

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55820296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档