Python 数据帧重置缓存
我在使用Python 数据帧重置缓存,python,pandas,numpy,Python,Pandas,Numpy,我在使用pandasDataFrame时遇到问题。考虑下面的数据文件< /代码>: 现在,如果我使用seaborn绘制多个子地块。在这种情况下,子批次基于列比例。它只正确地创建了2个子批次,因为列scale中只有两个唯一的值: 简单代码: 将产生: 生成的图形示例: 当我尝试筛选行时,问题出现了。如果我过滤掉列scale值为weak的所有行,我应该只得到一个子图,但我仍然有两个子图,即使DataFrame不包含任何其他scale #筛选行 df=df[['scale']=='weak'
pandas
DataFrame
时遇到问题。考虑下面的<代码>数据文件< /代码>:
现在,如果我使用seaborn
绘制多个子地块。在这种情况下,子批次基于列比例
。它只正确地创建了2个子批次,因为列scale
中只有两个唯一的值:
简单代码:
将产生:
生成的图形示例:
当我尝试筛选行时,问题出现了。如果我过滤掉列scale
值为weak
的所有行,我应该只得到一个子图,但我仍然有两个子图,即使DataFrame
不包含任何其他scale
#筛选行
df=df[['scale']=='weak']
#打印有关列比例的详细信息
打印(df['scale'].value_counts())
打印(设置(df['scale']))
将产生:
结果图包含空的子图:
我不知道这种行为是否正确,但我更希望没有空的子地块。有没有办法重新加载数据帧
?
这是行不通的
到目前为止,我可以通过将数据帧保存到csv中并重新加载来重新加载数据帧,但这并不漂亮
谢谢你的帮助 您的
scale
列必须是category
dtype。过滤后,您需要调用:
什么是
print(df['scale'].dtype)
?我正在使用category
dtype然后检查答案,它正是需要的。是的,现在查看它,感谢帮助!是的,这确实有效。谢谢你的快速回复!
print(df['scale'].value_counts())
print(set(df['scale']))
weak 960
strong 890
Name: scale, dtype: int64
{'weak', 'strong'}
g = seaborn.FacetGrid(df, row='scale')
g.map(plt.plot, 'proc', 'wall_avg')
weak 960
strong 0
Name: scale, dtype: int64
{'weak'}
df = df[['scale'] == 'weak']
df.scale.cat.remove_unused_categories(inplace=True)