更新:我正在使用“ Socrata开源API”中的一些示例代码。我在代码中注意到以下注释:
# First 2000 results, returned as JSON from API / converted to Python
# list of dictionaries by sodapy.
我不熟悉JSON。
我已经下载了一个数据集,并创建了一个具有大量列的DataFrame'df'。
df = pd.DataFrame.from_records(results)
当我尝试使用describe()方法时,出现“ TypeError:不可哈希类型:'dict'”:
df.describe()
...
TypeError: unhashable type: 'dict'
如何识别产生此错误的列?
更新2: 根据Yuca的要求,我提供了df的摘录:
答案 0 :(得分:6)
我今天遇到了同样的问题,并对不同版本的pyarrow做了一些研究。 here我发现,过去(<0.13),pyarrow会为索引写具有名称的实际数据列。在pyarrow的最新版本中,将没有列数据,但有范围索引元数据标记代替。这意味着用较新版本的pyarrow生成的拼花文件无法由较旧版本读取。
答案 1 :(得分:2)
pandas0.25.3可以读取包含字典的json,显然pandas1.0.1没那么多
df = pd.read_json(path,lines=True)
TypeError: unhashable type: ‘dict’
pandas1.0.1对于在pandas0.25.3中工作的同一文件抛出上述错误。
问题是tracked,显然是在master中解决的,我想它将成为下一个版本。
答案 2 :(得分:0)
感谢用户社区(h / t G Anderson),我整理了一个解决方案:
DECLARE
val VARCHAR2(25) := 'Test';
aRow SOME_TABLE%ROWTYPE;
BEGIN
SELECT *
INTO aRow
FROM SOME_TABLE
WHERE NAME = val;
END;
transform(type).any()检查列i中的所有元素,如果元素是dict类型,则删除该列。
谢谢大家!