Seaborn热图和csv文件:“无法将字符串转换为浮点数”和“重复项,无法整形”

bt1cpqcv  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(197)

我对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:索引包含重复条目,无法重新调整。为什么我不能有重复的条目?

hwazgwia

hwazgwia1#

sns.heatmap()函数只使用带有numeric值的 Dataframe 或序列。根据错误消息,您使用的列包含字符串(文本)。
要只使用数值列创建热图,请使用select_dtype

data_numeric = data.select_dtype('number')
sns.heatmap(data_numeric)

字符串
如果您的列只包含字符串,我猜您正在尝试计算唯一值并创建热图。试试这个:

columns_of_interest = ['col1', 'col2']
count_table = pd.DataFrame(data[columns of interest].value_counts())
sns.heatmap(count_table)


我不明白你的pivot问题。我相信它试图复制索引,这是不可能的,因为索引值是Pandas引用单元格的方式。

**注意:**为了更好的指导,你应该总是包括一个小例子,说明你的数据是什么样子(一个小表格、截图或更好的解释);提供一个你想要达到的目标的例子;试着把问题集中在一个问题上。

相关问题