【问题标题】:Finding position of selected datatype column in a dataframe在数据框中查找所选数据类型列的位置
【发布时间】:2020-09-08 05:19:44
【问题描述】:

这是我的数据框:

c_id  fname  age salary  lname
1      abc   21   21.22   yyy
2      def   41   23.4    zzz

我需要显示列名相对于数据类型的位置。所以我的输出应该是:

**FOR INT:**

col_name  position 
c_id       0
age        2

**for str:**

col_name  position 
fname        1
lname        4

**for float:**

col_name  position 
salary     3

【问题讨论】:

    标签: python pandas dataframe indexing


    【解决方案1】:

    IIUC,您可以从 dtypes 创建一个数据框并重置索引以获取位置索引号。

    col_df = (
    pd.DataFrame(df.dtypes, columns=["DataType"])
    .rename_axis("Column")
    .reset_index()
    .rename_axis("Position")
    )
    
              Column DataType
    Position                 
    0           c_id    int64
    1          fname   object
    2            age    int64
    3         salary  float64
    4          lname   object
    

    print(col_df[col_df['DataType'] == 'object'])
    
             Column DataType
    Position                
    1         fname   object
    4         lname   object
    

    【讨论】:

    • 看起来不错,如果我需要打印另一个名为 max_length 的列,该列打印具有最大长度的字符串..
    • max_len = max(df[col], key=len) 打印最大字符串长度,但如何将其添加为上述数据框输出中的列。
    • @pooja 请提供样本
    • stackoverflow.com/questions/61998848/…?请使用我发布的示例链接。
    • @pooja 我没有看到任何与字符串相关的内容
    【解决方案2】:

    您可以在 DataFrame 上使用 .dtypes 方法

    df.dtypes
    >>> Name      object
        Age        int64
        City      object
        Marks    float64
        dtype: object
    
    df.dtypes['Name']
    >>> object
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多