如何解决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 举报,一经查实,本站将立刻删除。