【发布时间】:2018-09-23 14:00:00
【问题描述】:
我有一个 data pandas 数据框和一个向现有数据框追加一行的函数
df = pd.DataFrame()
df.columns = ['A', 'Line', 'B']
# add a new row at the end of non-indexed df
def addRow(self, colData, colNames):
l = len(df)
colList = []
for x in colData :
colList.append(str(x))
new_record = pd.DataFrame([tuple(colDList)])
new_record['Line'] = new_record['Line'].astype(int)
I am getting following error
Traceback (most recent call last):
File
line 207, in addRow
new_record[colName] = new_record[colName].astype(int)
File "site-packages/pandas/core/generic.py", line 3054, in astype
raise_on_error=raise_on_error, **kwargs)
File "python-3.6.1/linux_x86_64/lib/python3.6/site-packages/pandas/core/internals.py", line 3168, in astype
return self.apply('astype', dtype=dtype, **kwargs)
File "core/internals.py", line 3035, in apply
applied = getattr(b, f)(**kwargs)
File "site-packages/pandas/core/internals.py", line 462, in astype
values=values, **kwargs)
File "internals.py", line 505, in _astype
values = _astype_nansafe(values.ravel(), dtype, copy=True)
File "ckages/pandas/types/cast.py", line 534, in _astype_nansafe
return lib.astype_intsafe(arr.ravel(), dtype).reshape(arr.shape)
File "pandas/lib.pyx", line 983, in pandas.lib.astype_intsafe
(pandas/lib.c:16816)
File "pandas/src/util.pxd", line 74, in util.set_value_at (pandas/lib.c:69655)
ValueError: int() 以 10 为底的无效文字:''
谁能帮我解决值错误
【问题讨论】:
-
尝试使用它将值转换为 int
new_record['Line'] = pd.to_numeric(new_record['Line'], errors='coerce')。您收到的错误是因为 Line 列中有一些值无法转换为 int。