我对Python相当陌生,所以提前感谢您的耐心和理解。我看了Stackoverflow,但没有找到有用的答案。我正在使用Jupyter Notebook尝试可视化在不同商店购买的物品。举例来说:
Item Store
Screwdrivers Walmart
Screws Home Depot
Potatoes Trader Joe's
Bleach Walmart
Napkins Walmart
Flooring Home Depot
Treats Petco
Misc - Item Trader Joe's
字符串
我的代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
data = pd.read_csv('OOR_excerpt.csv', encoding='cp1252')
list_string = map(str, data)
df = dfraw[list_string]
sns.heatmap(df)
型
ValueError:无法将字符串转换为float:'杂项-项目'
这一直在工作,直到我注销了周末,并在清除cookie和缓存后回来。我通常不需要使用编码cp 1252代码。
1.我已经打开并重新保存在我的计算机上的csv文件,并将其重新加载到Jupyter Notebook(最初我正在处理许多不同的列,只是排除了我不需要的列,因为我应该能够)-文件没有以任何方式损坏我可以告诉。只使用我现在需要的两列
1.我试着添加这个,它应该将所有这些转换成字符串,对吗?我以前做过热图,只使用字母数字值没有问题:
list_string = map(str,cols_to_include)df = dfraw[list_string]
1.使用df_heatmap = df.pivot(“Item”,“Store”)sns.heatmap(df_heatmap)会给我错误ValueError:索引包含重复条目,无法重新调整。为什么我不能有重复的条目?
1条答案
按热度按时间hwazgwia1#
sns.heatmap()
函数只使用带有numeric值的 Dataframe 或序列。根据错误消息,您使用的列包含字符串(文本)。要只使用数值列创建热图,请使用
select_dtype
:字符串
如果您的列只包含字符串,我猜您正在尝试计算唯一值并创建热图。试试这个:
型
我不明白你的
pivot
问题。我相信它试图复制索引,这是不可能的,因为索引值是Pandas引用单元格的方式。**注意:**为了更好的指导,你应该总是包括一个小例子,说明你的数据是什么样子(一个小表格、截图或更好的解释);提供一个你想要达到的目标的例子;试着把问题集中在一个问题上。