Python:Pandas:从数据框制作字典

标签 python pandas dictionary dataframe multiple-columns

我正在尝试将数据框转换为字典:

xtest_cat = xtest_cat.T.to_dict().values()

但它给出警告:

Warning: DataFrame columns are not unique, some columns will be omitted python

我检查了数据框的列名(xtest_cat):

len(list(xtest_cat.columns.values)) 
len(set(list(xtest_cat.columns.values)))

它们都是独一无二的。 谁能帮我吗 ?

最佳答案

您可以使用 reset_index用于创建 unique 索引:

xtest_cat = pd.DataFrame({'A':[1,2,3],
                          'B':[4,5,6],
                          'C':[7,8,9]})

xtest_cat.index = [0,1,1]
print (xtest_cat)
   A  B  C
0  1  4  7
1  2  5  8
1  3  6  9

print (xtest_cat.index.is_unique)
False

xtest_cat.reset_index(drop=True, inplace=True)
print (xtest_cat)
   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

xtest_cat = xtest_cat.T.to_dict().values()
print (xtest_cat)
dict_values([{'B': 4, 'C': 7, 'A': 1}, {'B': 5, 'C': 8, 'A': 2}, {'B': 6, 'C': 9, 'A': 3}])

您也可以省略T并添加参数orient='index':

xtest_cat = xtest_cat.to_dict(orient='index').values()
print (xtest_cat)
dict_values([{'B': 4, 'C': 7, 'A': 1}, {'B': 5, 'C': 8, 'A': 2}, {'B': 6, 'C': 9, 'A': 3}])

orient='record' 更好:

xtest_cat = xtest_cat.to_dict(orient='records')
print (xtest_cat)
[{'B': 4, 'C': 7, 'A': 1}, {'B': 5, 'C': 8, 'A': 2}, {'B': 6, 'C': 9, 'A': 3}]

关于Python:Pandas:从数据框制作字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39333881/

相关文章:

javascript - 如何在 CodeMirror 编辑器中使用 selenium 模拟关键事件

python - 列出嵌套字典的串联键

python - 我可以使用 lambda、map、apply 或 applymap 来填充数据框吗?

python - 欧拉计划 #11 Numpy 方式

javascript - 与字典元素 typescript 进行比较

python - 通过字典有效地替换 Pandas 系列中的值

python - Pandas - 如果不存在分隔符,则使用默认值拆分列

Python RSA 库?

python - 将 json 数据从 django 发送到 d3.js

python - 在数据框中的多个组中应用 Pandas iterrows 逻辑