【问题标题】:Multiple Slicing in a dataframe in PythonPython中数据框中的多个切片
【发布时间】:2017-03-25 09:52:39
【问题描述】:

例如,如果我有一个包含 A - Z 列的数据框。

  1. 我想对“J”列进行切片并取回除“J”列之外的所有 A - Z 列。

  2. 我想对 A - Z 之间的所有列进行切片,只取回“J”列

提前致谢

【问题讨论】:

    标签: python pandas dataframe ipython slice


    【解决方案1】:

    我认为您可以使用DataFrame.pop,对于返回J 列需要将Series 转换为DataFrame by Series.to_frame

    df = pd.DataFrame({'A':[1,2,3],
                       'B':[4,5,6],
                       'C':[7,8,9],
                       'D':[1,3,5],
                       'J':[5,3,6],
                       'F':[7,4,3]})
    
    print (df)
       A  B  C  D  F  J
    0  1  4  7  1  7  5
    1  2  5  8  3  4  3
    2  3  6  9  5  3  6
    
    print (df.pop('J'))
    0    5
    1    3
    2    6
    Name: J, dtype: int64
    
    dfJ = df.pop('J').to_frame()
    print (dfJ)
       J
    0  5
    1  3
    2  6
    
    print (df)
       A  B  C  D  F
    0  1  4  7  1  7
    1  2  5  8  3  4
    2  3  6  9  5  3
    

    另一种解决方案:

    cols = [col for col in df.columns if col != 'J']
    print (df[cols])
       A  B  C  D  F
    0  1  4  7  1  7
    1  2  5  8  3  4
    2  3  6  9  5  3
    
    print (df[['J']])
       J
    0  5
    1  3
    2  6
    

    【讨论】:

      猜你喜欢
      • 2016-09-04
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2018-02-09
      • 2017-04-02
      • 2018-06-16
      • 1970-01-01
      • 2017-02-22
      相关资源
      最近更新 更多