首页 > 解决方案 > 去掉空方括号给出 ValueError: invalid literal for int() with base 10:

问题描述

我正在使用以下代码从我的 df 中删除方括号:

test[column].str.strip('[]').astype(int)

只要方括号中有字符串值,它就可以正常工作。偶尔会有只有空方括号 ([]) 的单元格。这些给出以下错误:

ValueError:以 10 为底的 int() 的无效文字:

如何删除数据中的所有方括号?

标签: pythonpandas

解决方案


尝试使用该ast模块。

前任:

import pandas as pd
import ast

df = pd.DataFrame({"C": ["[]", "[1]"]})
print(df["C"].apply(ast.literal_eval).str[0].fillna(0).astype(int))

输出:

0    0
1    1
Name: C, dtype: int32

推荐阅读