【问题标题】:Print row values as lists iteratively without getting the column names迭代地将行值打印为列表而不获取列名
【发布时间】:2022-08-03 00:32:05
【问题描述】:

我正在尝试将数据框的行作为单独的列表。此列表应仅包含特定行中特定行数的值。例如,如下所示的数据框应仅将行打印为列表一个接一个:

Name Age Gender
Michael 5 M
Fitz 10 F

应该打印出来

[Michael, 5, M]
[Fitz, 10, F]

我知道 df.loc[[1]] 打印出第一行,但它也打印出列名。我正在尝试摆脱列名并仅列出行值。

    标签: python pandas


    【解决方案1】:

    根据您的能力,您可以使用DataFrame.apply 将行加入列表,或者只是将 DataFrame 转换为行列表

    cols = ['Name', 'Age', 'Gender']
    
    out = df[cols].apply(list, axis=1)
    # or
    lsts = df[cols].values.tolist()
    
    print(out)
    
    0    [Michael, 5, M]
    1      [Fitz, 10, F]
    dtype: object
    
    print(lsts)
    
    [['Michael', 5, 'M'], ['Fitz', 10, 'F']]
    

    【讨论】:

      【解决方案2】:

      根据它是标题行还是常规行,您有两个选择:

      # If the first row is a header row.
      
      df.values.tolist()
      
      # If the first row is a regular row. Where the [1:] determines how many of the rows 
      # you want to remove.
      
      df.values.tolist()[1:]
      

      两者都产生:

      [['Michael', 5, 'M'], [10, 'F', 'Fitz']]
      

      【讨论】:

        猜你喜欢
        • 2011-04-05
        • 2016-02-26
        • 2021-08-10
        • 2015-02-27
        • 1970-01-01
        • 2015-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多