我有以下密码
df = pd.read_csv(CsvFileName)
p = df.pivot_table(index=['Hour'], columns='DOW', values='Changes', aggfunc=np.mean).round(0)
p.fillna(0, inplace=True)
p[["1Sun", "2Mon", "3Tue", "4Wed", "5Thu", "6Fri", "7Sat"]] = p[["1Sun", "2Mon", "3Tue", "4Wed", "5Thu", "6Fri", "7Sat"]].astype(int)
它一直在工作,直到csv文件没有足够的覆盖范围(整个星期)。例如,使用以下.csv文件
DOW,Hour,Changes
4Wed,01,237
3Tue,07,2533
1Sun,01,240
3Tue,12,4407
1Sun,09,2204
1Sun,01,240
1Sun,01,241
1Sun,01,241
3Tue,11,662
4Wed,01,4
2Mon,18,4737
1Sun,15,240
2Mon,02,4
6Fri,01,1
1Sun,01,240
2Mon,19,2300
2Mon,19,2532
我将得到以下错误:
KeyError: "['5Thu' '7Sat'] not in index"
它似乎有一个非常简单的修复方法,但是我对Python来说太陌生了,不知道如何修复它。
我也有同样的问题。
在第一次开发过程中,我使用了一个.csv文件(逗号作为分隔符),在保存它之前我已经对它进行了一些修改。 保存后逗号变成分号。
在Windows上,它依赖于“区域和语言选项”自定义屏幕,在该屏幕上可以找到列表分隔符。这是Windows应用程序希望用作CSV分隔符的char。
当从一个全新的文件测试时,我遇到了这个问题。
我在read-csv方法中删除了'sep'参数 之前:
之后:
这样,问题就消失了。
我有一个非常相似的问题。我得到了同样的错误,因为csv在头中包含空格。我的csv包含一个标题“Gender”,我把它列为:
如果访问csv足够简单,可以使用excel公式
trim()
剪裁单元格的任何空格。或者像这样移除它
df.columns = df.columns.to_series().apply(lambda x: x.strip())
使用^{} 获取所需的所有列。它将保留已经存在的内容,否则将放在空列中。
所以,整个代码示例应该如下所示:
相关问题 更多 >
编程相关推荐