微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pandas DataReader 错误 = 长度不匹配:预期轴有 8 个元素,新值有 7 个元素

如何解决Pandas DataReader 错误 = 长度不匹配:预期轴有 8 个元素,新值有 7 个元素

当我想从 St.Louis Fed 导入数据时,Python 给了我这样的错误

长度不匹配:预期轴有 8 个元素,新值有 7 个元素。

我可以通过删除dataFrame的最后一列来解决这个错误,但我需要它。我该怎么办?

import matplotlib.pyplot as plt
import pandas_datareader.data as pdr
import pandas as pd
import datetime

start = datetime.datetime(2000,1,1)
end = datetime.datetime(2021,5,1)
df = pdr.DataReader(
    [
        "WFRBSB50215","WFRBST01134","WFRBST01122","WFRBSN09139","WFRBSB50189","WFRBST01110","WFRBSB50191","WFRBSN09148",],"fred",start,end,)
df.columns = [
    "Share of Total Net Worth Held by the Bottom 50% (1st to 50th Wealth percentiles)","Share of Total Net Worth Held by the Top 1% (99th to 100th Wealth percentiles)","Share of Corporate Equities and Mutual Fund Shares Helb By Top1%(99th to 100th Wealth percentiles)","Share of Financial Assets Held by the 90th to 99th Wealth percentiles","Share of Total Assets Held by the Bottom 50% (1st to 50th Wealth percentiles)","Share of Real Estate Held by the Top 1% (99th to 100th Wealth percentiles)","Share of Real Estate Held by the Bottom %50(1st to 50th Wealth percentiles)"
    "Share of Mortgages Held by the 90th to 99th Wealth percentiles",]
ax = df.plot(subplots=True,figsize=(12,12),linewidth=3.5,colormap="summer")
plt.xlabel("Date")
ax[
    0,].set_title("Share of Total Net Worth Held by the Bottom 50%")
ax[
    0,].set_ylabel("Percent of Aggregate")
ax[
    1,].set_title("Share of Total Net Worth Held by the Top 1%")
ax[
    1,].set_ylabel("Percent of Aggregate")
ax[
    2,].set_title("Share of Corporate Equities and Mutual Fund Shares Helb By Top 1%")
ax[
    2,].set_ylabel("Percent of Aggregate")
ax[
    3,].set_title("Share of Financial Assets Held by the 90th to 99th Wealth percentiles")
ax[
    3,].set_ylabel("Percent of Aggregate")
ax[
    4,].set_title("Share of Total Assets Held by the Bottom 50% ")
ax[
    4,].set_ylabel("Percent of Aggregate")
ax[
    5,].set_title("Share of Real Estate Held by the Top 1%")
ax[
    5,].set_ylabel("Percent of Aggregate")
ax[
    6,].set_title("Share of Real Estate Held by the Bottom %50")
ax[
    6,].set_ylabel("Percent of Aggregate")
ax[
    7,].set_title("Share of Mortgages Held by the 90th to 99th Wealth percentiles")
ax[
    7,].set_ylabel("Percent of Aggregate")
plt.tight_layout()
plt.show()

解决方法

在新的 df.columns 中倒数第二个项目后缺少逗号。

没有它,单独行上的字符串会聚集在一起,总共有 7 个元素,而不是预期的 8 个。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。