代码之家  ›  专栏  ›  技术社区  ›  Ashu

在csv文件中使用dataframe交换列-Python

  •  0
  • Ashu  · 技术社区  · 2 年前

    我想使用s3 bucket中的dataframe从csv文件交换列。 数据帧 具有具有列名的标题行( sa_instance_state, data_interval_start,NAME )

    :

    def modify_csv(**kwargs):
        s3=boto3.client('s3')
        read_file = s3.get_object(Bucket=Bucket, Key=Key)
        df = pd.read_csv(read_file['Body'],sep=',')
        print(df)
        
    

    输入数据帧 print(df)

    sa_instance_state     data_interval_start  NAME 
    <sqlalchemy.orm.state.InstanceState1> 2022-07-17 12:55:00+00:00  XYZ
    <sqlalchemy.orm.state.InstanceState2> 2022-07-17 12:58:00+00:00  abx
    

    预期结果:

    NAME  sa_instance_state     data_interval_start   
    XYZ   <sqlalchemy.orm.state.InstanceState1> 2022-07-17 12:55:00+00:00  
    abx   <sqlalchemy.orm.state.InstanceState2> 2022-07-17 12:58:00+00:00
    
    2 回复  |  直到 2 年前
        1
  •  1
  •   Corralien    2 年前

    您可以使用 set_index reset_index :

    >>> df.set_index('NAME').reset_index()
      NAME                      sa_instance_state        data_interval_start
    0  XYZ  <sqlalchemy.orm.state.InstanceState1>  2022-07-17 12:55:00+00:00
    1  abx  <sqlalchemy.orm.state.InstanceState2>  2022-07-17 12:58:00+00:00
    
        2
  •  0
  •   claraja    2 年前

    df = df[['NAME', 'sa_instance_state', 'data_interval_start']]