我正在学习python,并试图将某个人在Kaggle上发布的笔记本改编为我当前的项目。不幸的是,我一直得到一个“长度不匹配:预期轴有33个元素,新值有9个元素”错误
import pandas as pd
import numpy as np
pd.set_option('display.float_format', lambda x: '{:.3f}'.format(x))
data = pd.read_csv('c:\python\Rent Increase History.csv')
def stats(df, pred=None):
obs = df.shape[0]
types = df.dtypes
counts = df.apply(lambda x: x.count())
uniques = df.apply(lambda x: [x.unique()])
nulls = df.apply(lambda x: x.isnull().sum())
distinct = df.apply(lambda x: x.unique().shape[0])
ratio_missing = (df.isnull().sum() / obs) * 100
skewness = df.skew()
kurtosis = df.kurt()
print('Data shape:', df.shape)
if pred is None:
cols = ['types', 'counts', 'distinct', 'nulls', 'ratio_missing', 'uniques', 'skewness', 'kurtosis']
str = pd.concat([types, counts, distinct, nulls, ratio_missing, uniques, skewness, kurtosis], axis=1)
else:
corr = df.corr()[pred]
str = pd.concat([types, counts, distinct, nulls, ratio_missing, uniques, skewness, kurtosis, corr], axis=1,
sort=False)
corr_col = 'corr ' + pred
cols = ['types', 'counts', 'distinct', 'nulls', 'ratio_missing', 'uniques', 'skewness', 'kurtosis', corr_col]
str.columns = cols
dtypes = str.types.value_counts()
print('___________________________\nData types:\n', str.types.value_counts())
print('___________________________')
return str
StatDetails = stats(data, 'MovedOutInPeriod')
Print(StatDetails.sort_values(by='corr MovedOutInPeriod', ascending=False))
据我所知,这个函数应该返回9列,而不是我最初设计的33列。。。为什么我仍然会犯这个错误
提前谢谢。我相信这是我错过的简单的东西
更新-以下是错误的完整列表:
Traceback (most recent call last):
File "C:\Users\john\PycharmProjects\pythonProject\main.py", line 37, in <module>
StatDetails = rstr(data, 'MovedOutInPeriod')
File "C:\Users\john\PycharmProjects\pythonProject\main.py", line 30, in rstr
str.columns = cols
File "C:\Users\john\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\generic.py", line 5152, in __setattr__
return object.__setattr__(self, name, value)
File "pandas\_libs\properties.pyx", line 66, in pandas._libs.properties.AxisProperty.__set__
File "C:\Users\john\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\generic.py", line 564, in _set_axis
self._mgr.set_axis(axis, labels)
File "C:\Users\john\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\internals\managers.py", line 226, in set_axis
raise ValueError(
ValueError: Length mismatch: Expected axis has 33 elements, new values have 9 elements
问题在于特性uniques,编写如下代码:
相关问题 更多 >
编程相关推荐