1.IndentationError: unindent does not match any outer indentation level
报错原因:这是占位问题,存在两种可能性:
1.代码没有进行对齐;
2.存在非法字符与其他格式的不可见的内容(比如中文状态输入空格等输入法问题)。
解决方法:
1.将光标移到行首,按下Tab键,进行代码对齐,我比较喜欢这一种方式;或按下四个空格键进行缩进。
注:Python的“层次逻辑关系”都是靠缩进来彰显的。
2.选中代码,按下Tab键进行多行的缩进。Tab键还有个名称叫——制表符。
特别注意:
- 1.注释也要符合代码规范,进行合适的代码缩进(或对齐);
- 2.不要Tab键和空格键进行混用,必须保持一致。
2.TypeError: Index(…) must be called with a collection of some kind, ‘abcdefghim’ was passed
报错原因:
数据只有一列,看似不是一列却是一列。眼见不一定为实,更哲学一点儿,人求存而不求真。
请看如下举例:这是(4,1)的矩阵,不是(4,3)的矩阵。这困惑了我许久,发现了。
a = [
['1, 2, 3'],
['4, 5, 6'],
['1, 7, 3'],
['4, 9, 6']
]
print(np.shape(a)) # (4, 1)
解决方法:
在指定column时,需要加中括号。
df = pd.DataFrame(data, columns=['result'])
3.OSError: Initializing from file failed
报错原因:
1、文件名包含中文名;
2、传入参数是文件路径而非文件名
解决方法:
1、在read_csv之前先用open函数
f = open('实验-01.csv')
data = pd.read_csv(f,skiprows=1,header=None)
2、不加open函数,在read_csv里面设置engine参数
data = pd.read_csv('实验-01.csv',skiprows=1,header=None,engine='python')