Python:数据预处理 - 调换column到指定位置或者任意位置

Question:调换column到想要的位置
"""以如下DataFrame为例"""
import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
df['mean'] = df.mean(1)  # 即 df.mean(axis=1),计算columns的均值
print(df)

我知道df['mean'] = df.mean(1)可以加上平均值列(函数pandas.DataFrame.mean链接)。但是如果我想把mean列放到第1列,或者c列的位置(即第3列)怎么做呢?


Answer 1 使用list.insert()
""" 目标:把"mean"放到第一列"""
cols = df.columns.tolist()                     # 把df的列名称,取出来放到一个list里边。即返回['a', 'b', 'c', 'd', 'e', 'mean']
cols.insert(0, cols.pop(cols.index('mean')))   # pop()把mean从cols列表里挖出来,通过位置参数“0”,然后放到第一列。
df_final = df[cols]                            # df按照cols序列,把mean字段放到了第一列

print(df_final)
# 结果如下
       mean         a         b         c         d         e
0  0.507075  0.263543  0.537802  0.441994  0.821771  0.470263
1  0.471259  0.441606  0.666618  0.288648  0.126873  0.832552
2  0.416545  0.475424  0.246417  0.182164  0.453856  0.724866
3  0.688879  0.773911  0.625324  0.719911  0.819626  0.505623
4  0.682245  0.109669  0.895214  0.887555  0.941115  0.577671
5  0.424046  0.272191  0.608281  0.425871  0.710838  0.103048
6  0.661013  0.874205  0.600051  0.983872  0.431361  0.415577
7  0.605521  0.734624  0.543319  0.402324  0.472205  0.875135
8  0.570878  0.112548  0.937914  0.333734  0.810133  0.660061
9  0.326754  0.196427  0.012119  0.224301  0.921659  0.279263
Answer 2,即Answer1的更进一步

因为:

cols = df.columns.tolist()
a = cols.index('mean')

等价于
a = df.columns.get_loc('mean') # 与之对应的还有Index的操作: df.index.get_loc(‘index_name’)

所以:

cols.insert(cols.index('c'), cols.pop(cols.index('mean')))   # cols.index('c')返回'c'在cols的位置信息,

df_final = df[cols]
# 结果如下
          a         b      mean         c         d         e
0  0.860127  0.726879  0.666938  0.934172  0.070063  0.743448
1  0.968780  0.480477  0.545988  0.808154  0.100302  0.372227
2  0.862920  0.808950  0.641398  0.125624  0.478846  0.930653
3  0.580197  0.503121  0.320077  0.325538  0.071035  0.120495
4  0.745048  0.787395  0.554878  0.726347  0.078876  0.436725
5  0.370106  0.220008  0.403898  0.296168  0.647584  0.485626
6  0.966086  0.307910  0.677990  0.671499  0.980961  0.463494
7  0.586902  0.888019  0.709354  0.869333  0.271431  0.931085
8  0.170236  0.941333  0.676650  0.862466  0.502819  0.906397
9  0.447175  0.547105  0.399189  0.284198  0.518901  0.198565
Answer 3 使用reindex()想怎么排列就怎么排列
df = df.reindex(['a', 'b', 'mean', 'c', 'd', 'e'], aixs=1)
附注:
list.insert(
index,                     # int数值,指定我们要插入的列位置
element)                  # 要插入的元素  
DataFrame.insert(
loc,                        # int数值,指定我们要插入的列位置
column,                     # 设定要插入列的名称
value,                      # 要插入列的值
allow_duplicates=False)     # 如果我们起的列名称在df里边已经被占用了,是否允许重名的现象存在。默认不可以。
  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
数据预处理是数据分析中非常重要的一个环节,它可以让原始数据更加适合用于各种分析和建模任务。常见的数据预处理包括数据清洗、缺失值处理、异常值处理、特征选择、特征缩放和特征变换等。下面我们将介绍一些常见的数据预处理方法。 1. 数据清洗 数据清洗是指在数据中去除不合理、重复或者无效的数据,保证数据的完整性和准确性。常见的数据清洗方法包括: - 删除重复数据 - 去除异常值 - 去除不合理数据 - 填充缺失值 2. 缺失值处理 缺失值是指数据集中某些数据缺失的情况。常见的缺失值处理方法包括: - 删除缺失值 - 插值法填补缺失值 - 使用平均值、中位数、众数等统计量填补缺失值 3. 异常值处理 异常值是指数据集中不符合正常规律的数据。常见的异常值处理方法包括: - 删除异常值 - 修改异常值 - 使用插值法填补异常值 4. 特征选择 特征选择是指从原始数据中选择最具有代表性的特征,以便用于分析和建模。常见的特征选择方法包括: - 过滤式特征选择 - 包裹式特征选择 - 嵌入式特征选择 5. 特征缩放 特征缩放是指将不同量纲的特征缩放到相同的范围内。常见的特征缩放方法包括: - 标准化 - 归一化 - 对数变换 6. 特征变换 特征变换是指通过对原始数据进行某些变换,使得数据更适合用于分析和建模。常见的特征变换方法包括: - 主成分分析(PCA) - 线性判别分析(LDA) - 因子分析 以上就是一些常见的数据预处理方法,通过对数据进行适当的预处理,可以提高数据分析和建模的准确性和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值