熊猫应用错误 我有一个包含以下列的熊猫数据框
col = ["File_Path", "Function_Body", "Prediction", "Line_Number"]
我正在列函数体上应用 get_prediction(( 函数,它返回三个值
- 列表(预测(:例如。
[1,1,0,0,0]
- 列表(置信度(:例如。
[64.000, 88.000,0,0,0]
- 列表列表(带行号的前 5 个令牌(:
[['int', 5], ['ret', 6],['char', 5],['sum', 4],['i', 2]]
以下代码段,对于一个数据集运行良好,但对于其他数据集给出主题错误。
final_df["Prediction"], final_df["Confidence"], final_df["Tokens"] = zip(*final_df["Function_Body"].apply(lambda x:get_prediction(x)))
错误:
File "nginx_fast.py", line 404, in <module>
final_df["Prediction"], final_df["Confidence"], final_df["Tokens"] = zip(*final_df["Function_Body"].apply(lambda x:get_prediction(x)))
File "/usr/local/lib/python3.6/dist-packages/pandas/core/frame.py", line 2938, in __setitem__
self._set_item(key, value)
File "/usr/local/lib/python3.6/dist-packages/pandas/core/frame.py", line 3001, in _set_item
NDFrame._set_item(self, key, value)
File "/usr/local/lib/python3.6/dist-packages/pandas/core/generic.py", line 3624, in _set_item
self._data.set(key, value)
File "/usr/local/lib/python3.6/dist-packages/pandas/core/internals/managers.py", line 1067, in set
"Shape of new values must be compatible with manager shape"
AssertionError: Shape of new values must be compatible with manager shape
我在 return 语句之前检查了返回值的形状和类型,对我来说看起来不错。
我也遇到了这个问题。这就是我解决它的方式
final_df["Prediction"], final_df["Confidence"], c = zip(*final_df["Function_Body"].apply(lambda x:get_prediction(x)))
final_df["Tokens"] = list(c)
由于输出"c"是元组,因此数据帧应获取列表,因此应将元组转换为列表。