我是新手,对于Pandas不是很熟悉,如果这个问题太简单或者不太有意义,请见谅。
假设我有以下数据框(源自文档):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({
'A' : ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B' : ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C' : np.random.randn(8),
'D' : np.random.randn(8)}
)
值:
A B C D
0 foo one -1.591757 0.016910
1 bar one 0.540010 1.022113
2 foo two -1.134974 -1.600034
3 bar three 0.082130 -0.221179
4 foo two 0.252851 1.963539
5 bar two -3.012450 0.815712
6 foo one -0.243863 0.615665
7 foo three -2.558635 -2.405591
我会针对B列的任何值计算C和D列的平均值:
result = df.groupby("B").mean()
数值:
C D
B
one -0.431870 0.551563
three -1.238253 -1.313385
two -1.298191 0.393072
我可以使用DataFrame
的plot
方法绘制结果表:
result.plot()
现在,如果我想进一步操作绘图,并直接使用plt.plot
,那么图例将会消失,横轴标签则被替换为数字索引:
plt.plot(result)
如何使用plt.plot
方法获得相同的图表?
3.4.3, 0.17.1, 1.5.0
。当我使用plt.plot(result)
时,出现了错误ValueError: could not convert string to float: 'two'
。 - Anton Protopopov2.7.10,0.16.2,1.4.3
(Anaconda 发行版)。对于我来说,这行代码绝对不会引发任何异常。无论如何,它也没有给我想要的图形 :) - Aristide