Попытка проверить, правильно ли прочитаны типы данных, нормально работает в Jupyter, но выдает ошибку выше в Pycharm (2018.3.3 CE, сборка № 183.5153.39, 9 января 2019 г.):
import pandas.api.types as ptypes
filename = "myfile.csv"
numericcols = ['YEAR', 'AMOUNT']
stringcols = ['ID', 'REFERENCE']
dfcols = ['YEAR', 'ID', 'REFERENCE', 'AMOUNT']
coltypesdict = {'YEAR': int, 'AMOUNT': float, 'ID': str, 'REFERENCE': str}
start_pd = time.time()
try:
with open (filename, 'rb') as file:
reader = pd.read_csv(filename, chunksize=10000, header = None, names=dfcols, dtype=coltypesdict)
df = pd.concat([x for x in reader], ignore_index=True)
assert(set(df.columns) == set(dfcols))
assert all(ptypes.is_numeric_dtype(df[col]) for col in numericcols) == True
assert all(ptypes.is_string_dtype(df[col]) for col in stringcols) == True
print("{} read successfully in {:.2f} secs".format(filename, time.time() - start_pd))
except IOError:
print("could not read {}".format(filename))
Также пытался выделить код с таким же результатом:
numericcolslist = [ptypes.is_numeric_dtype((df[col]) for col in numericcols)]
stringccolslist = [ptypes.is_string_dtype((df[col]) for col in stringcols)]
assert all(numericcolslist) == True
assert all(stringccolslist) == True
Спасибо