【问题标题】:How to hide axis labels in python pandas dataframe?如何在 python pandas 数据框中隐藏轴标签?
【发布时间】:2019-09-15 23:20:06
【问题描述】:

我使用以下代码生成了一个数据框,该数据框应该是 seaborn 绘图的输入。

data_array = np.array([['index', 'value']])
for x in range(len(value_list)):
    data_array = np.append(data_array, np.array([[int((x + 1)), int(value_list[x])]]), axis = 0)
data_frame = pd.DataFrame(data_array)

输出看起来像这样:

      0       1
0 index  values
1     1 value_1
2     2 value_2
3     3 value_3

但是,使用此数据框,seaborn 会返回错误。将我的数据与示例进行比较时,我发现第一行丢失了。使用 load_dataset() 加载的样本如下所示:

0 index  values
1     1 value_1
2     2 value_2
3     3 value_3

如何删除数据框的第一行轴标签,使其看起来像提供的示例?删除第一行会删除字符串“index”和“values”,但不会删除轴标签。

【问题讨论】:

    标签: python arrays pandas numpy dataframe


    【解决方案1】:

    Numpy 认为 indexvalues 行也是数据框的值的一行,而不是列的名称。

    我认为这将是更 Pythonic 的方式:

    pd.DataFrame(list(enumerate(value_list, 1)), columns=['index', 'values'])
    

    【讨论】:

    • @jezrael 同意。其他答案也是正确的,但他们似乎没有看到 data_array 首先是如何产生的。它可以做得更简单
    【解决方案2】:

    只需切片您的数据帧

    df =data_frame[2:]
    df.columns = data_frame.iloc[1] --it will set the column name
    

    【讨论】:

      【解决方案3】:

      试试:

      new_header = df.iloc[0] #grab the first row for the header
      df = df[1:] #take the data less the header row
      df.columns = new_header #set the header row as the df header
      

      【讨论】:

        【解决方案4】:

        不知道value_list 是什么。但是我会推荐另一种创建数据框的方法:

        import pandas as pd
        
        value_list = ['10', '20', '30']
        
        data_frame = pd.DataFrame({
            'index': range(len(value_list)),
            'value': [int(x) for x in value_list]})
        

        data_frame:

           index value
        0      0    10
        1      1    20
        2      2    30
        

        现在您可以轻松更改数据框索引和“索引”列:

        data_frame.loc[:, 'index'] += 1
        data_frame.index += 1
        

        data_frame:

           index value
        1      1    10
        2      2    20
        3      3    30
        

        【讨论】:

        • 我认为'value' 是字符串。所以只需'value': value_list
        • @YevhenKuzmovych 问题中的代码包含int(value_list[x])。所以我想可能需要一些类型转换。当然以后可以通过pandas的方式来完成。
        • 是的。可能 OP 示例与生成它的代码不一致。
        猜你喜欢
        • 2011-05-04
        • 2017-04-03
        • 1970-01-01
        • 2016-12-05
        • 1970-01-01
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        相关资源
        最近更新 更多