python - ValueError: int() 以 10 为底的无效文字:'"034545104X"' Pandas Dataframe
问题描述
ratings["isbn"] = ratings["isbn"].astype(int)
尝试将列转换为整数格式以进行分析时出现此错误。我什至尝试替换 isbn 列中的引号和 X。即使那样我也得到了错误。
ratings_data['isbn'] = ratings_data['isbn'].replace({'"':''}, regex=True)
ratings_data['isbn'] = ratings_data['isbn'].replace({'X':''}, regex=True)
解决方案
问题是还有许多其他字符串,例如X
,您可以找到所有ISBN
非仅以结尾X
且没有数字的字符串:
ratings_data = pd.read_csv('BX-Book-Ratings.csv', sep=';')
# print(ratings_data.head(10))
df = ratings_data[~ratings_data['ISBN'].str.contains(r'^\d+$|^\d+X$')]
print(df)
User-ID ISBN Book-Rating
54 276762 B0000BLD7X 0
55 276762 N3453124715 4
384 276884 B158991965 6
535 276929 2.02.032126.2 0
536 276929 2.264.03602.8 0
... ... ...
1146393 275970 014014904x 0
1147650 276009 01400.77022 0
1147916 276046 08348OO799 10
1148549 276331 \0432534220" 9
1149066 276556 055337849x 10
[3092 rows x 3 columns]
可能的解决方案是仅过滤带有X
或数字的数据以进行处理:
ratings_data = pd.read_csv('BX-Book-Ratings.csv', sep=';')
# print(ratings_data.head(10))
ratings_data = ratings_data[ratings_data['ISBN'].str.contains(r'^\d+$|^\d+X$')]
print(ratings_data)
User-ID ISBN Book-Rating
0 276725 034545104X 0
1 276726 0155061224 5
2 276727 0446520802 0
3 276729 052165615X 3
4 276729 0521795028 6
... ... ...
1149775 276704 1563526298 9
1149776 276706 0679447156 0
1149777 276709 0515107662 10
1149778 276721 0590442449 10
1149779 276723 05162443314 8
[1146688 rows x 3 columns]
ratings_data['ISBN'] = ratings_data['ISBN'].replace({'X':''}, regex=True).astype(np.int64)
print(ratings_data)
User-ID ISBN Book-Rating
0 276725 34545104 0
1 276726 155061224 5
2 276727 446520802 0
3 276729 52165615 3
4 276729 521795028 6
... ... ...
1149775 276704 1563526298 9
1149776 276706 679447156 0
1149777 276709 515107662 10
1149778 276721 590442449 10
1149779 276723 5162443314 8
[1146688 rows x 3 columns]
推荐阅读
- excel - WEKA 显示我在 ARFF 文件中的第一个变量以字符 
- c++ - 哪个更好,单 for 循环或双 for 循环迭代二维数组?C++
- ios - 在 UITableViewCell 中将图像添加到 UIImageView 会不希望地修改图像视图高度
- python - 为什么即使在成功安装模块后尝试导入 textract 时仍然出现 ModuleNotFoundError?
- python - 使用字典构建匹配系统
- python - opencv创建圈出界
- sql - AND 与 ORDER BY 有什么用?
- r - 如何在 R 的小标题输出中添加换行符?
- mysql - MariaDB 总和大小从表中的 id 到另一个中的 id
- json - 在Angular中存储和处理来自httpClient get请求的JSON数据的最佳方法