【问题标题】:Modify nan index in pandas修改 pandas 中的 nan 索引
【发布时间】:2012-12-20 07:55:55
【问题描述】:

这个问题和Visually separating bar chart clusters in pandas有点关系

我正在阅读并绘制 tmp.csv 文件:

pol1 pol2 pol3
perim 0.54 0.64 0.40
mst 0.08 0.12 0.12
treeadd 0.25 0.34 0.35
health 0.14 0.17 0.17
bisort 0.48 0.56 0.56
em3d 0.14 0.17 0.17

g721d 1.41 2.58 2.58
mesa 1.16 1.8 1.8
epic 1.82 2.43 2.43
jpege 1.18 1.68 1.68

gzip 1.15 1.43 1.45
vpr 0.19 0.24 0.24
gcc 0.82 1.11 1.15
mcf 0.05 0.05 0.05
crafty 0.67 1.17 1.17

与:

#!/usr/bin/env python

from pandas import *
import matplotlib.pyplot as plt
from numpy import zeros

# Create original dataframe
df = read_csv('tmp.csv',sep='\s')

print df

df.plot(kind='bar')
plt.show()

我得到:

         pol1  pol2  pol3
perim    0.54  0.64  0.40
mst      0.08  0.12  0.12
treeadd  0.25  0.34  0.35
health   0.14  0.17  0.17
bisort   0.48  0.56  0.56
em3d     0.14  0.17  0.17
nan       NaN   NaN   NaN
g721d    1.41  2.58  2.58
mesa     1.16  1.80  1.80
epic     1.82  2.43  2.43
jpege    1.18  1.68  1.68
nan       NaN   NaN   NaN
gzip     1.15  1.43  1.45
vpr      0.19  0.24  0.24
gcc      0.82  1.11  1.15
mcf      0.05  0.05  0.05
crafty   0.67  1.17  1.17

和:

注意用空行分隔集群。这就是我想要的效果。 有没有办法在 x 轴上用“”替换“nan”标签?

我试过了: df.rename(index={'nan': ""})

但是有一个断言失败

assert(new_axis.is_unique)

可能是因为有多个 'nan' 索引 df。想法?

-谢谢

【问题讨论】:

    标签: python plot pandas


    【解决方案1】:

    而不是修改DataFrame,也许只是改变matplotlib xtick标签:

    import pandas as pd
    import matplotlib.pyplot as plt
    
    df = pd.read_csv('tmp.csv', sep = '\s')
    df.plot(kind='bar')
    locs, labels = plt.xticks()
    plt.xticks(locs, [d if d==d else '' for d in df.index], rotation = 25)
    plt.show()
    

    【讨论】:

    • 即使这不是我想要的,它确实有效。
    • 知道如何实际更改 df 索引吗?我的一些问题源于我不能使用 np.nan 的相等性这一事实。 --谢谢
    • 我认为您的问题与此open issue 有关。对不起;我没有任何好的解决方法。
    猜你喜欢
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 2020-04-11
    • 2016-02-11
    • 1970-01-01
    • 2021-06-13
    相关资源
    最近更新 更多