我正在尝试使用Pandas在散点图上绘制一个浮点值的时间序列日期,但我在尝试绘图时得到奇怪的错误'长度不匹配:预期轴有3个元素,新值有2个元素'数据。
这是我正在使用的Python代码
get_ipython().magic('matplotlib inline')
import matplotlib.pyplot as plt
import seaborn; seaborn.set()
import pandas as pandas
base_rate_over_time = pandas.read_csv("/Users/clarkj84/Desktop/boe-all-time-base-rate.csv")
base_rate_over_time = base_rate_over_time.drop(['SERIES'], axis=1)
base_rate_dates_as_series = pandas.Series(base_rate_over_time['DATE'])
base_rate_over_time['DATE'] = pandas.to_datetime(base_rate_dates_as_series)
base_rate_over_time.plot(0, 0)
base_rate_over_time.reset_index(inplace=True)
base_rate_over_time.columns = ['DATE','VALUE']
base_rate_over_time.plot(kind = 'scatter', x = 'DATE', y = 'VALUE')
plt.show()
以下是我试图反对的数据集的片段
index DATE VALUE
0 0 1975-01-02 11.50
1 1 1975-01-03 11.50
2 2 1975-01-06 11.50
3 3 1975-01-07 11.50
4 4 1975-01-08 11.50
5 5 1975-01-09 11.50
6 6 1975-01-10 11.50
7 7 1975-01-13 11.50
这里导致列错误的原因是什么?
答案 0 :(得分:0)
看起来像
行base_rate_over_time.columns = ['DATE','VALUE']
是错误的原因。此命令用于重命名列,但此时base_rate_over_time
数据框有3列,而只给出了两个新列名。此处有3列,因为上面一行中使用reset_index()
将创建新的index
列。
您可以在重命名列之前删除这两行或使用drop('index', inplace=True)
。
答案 1 :(得分:0)
在我看来,这是定界符问题,
由以下stmt解决
df = pd.read_csv("pos.csv", sep='"', header=None)
获得
“字符串1,字符串2”