在使用pandas对数据进行处理时,假设对于二维数组,每一行是一个数据,每一列是一个特征,可能需要对所有数据的特征进行一些缩放、平方、增加数值等操作。
本文中介绍的方式,将每一个特征都取出作为一个 Series
来对当前 Series
(特征)下的所有数据进行统一的操作。
# 假设 X 为所有的数据矩阵, feature 为某一个特征,其数据类型为DataFrame中的Series
feature = X[0] # 假设 feature 取第0列表示的特征
new_f1 = feature + 1 # 所有数据的第0个特征都+1
new_f2 = feature ** 2 # 平方
new_f3 = 1 / feature # 取倒数
new_f4 = np.sqrt(feature) # 开放
下面是对数据X的每一列进行一系列操作的代码和结果展示:
import pandas as pd
import numpy as np
if __name__ == '__main__':
X = [[1, 2], [3, 4], [5, 6], [7, 8]]
X = pd.DataFrame(X)
col_nums = 2
column_counter = col_nums
print("原数据:")
print(X)
X_copy = X.copy(deep=True)
for column in X:
X[column + column_counter] = X_copy[column] ** 2
column_counter += col_nums
for column in X.iloc[:, 0:col_nums]:
X[column + column_counter] = 1 / X_copy[column]
column_counter += col_nums
for column in X.iloc[:, 0:col_nums]:
X[column + column_counter] = np.sqrt(X_copy[column])
print("进行统一操作后的数据:")
print(X)
column_counter += col_nums
原数据:
0 1
0 1 2
1 3 4
2 5 6
3 7 8
进行统一操作后的数据:
0 1 2 3 4 5 6 7
0 1 2 1 4 1.000000 0.500000 1.000000 1.414214
1 3 4 9 16 0.333333 0.250000 1.732051 2.000000
2 5 6 25 36 0.200000 0.166667 2.236068 2.449490
3 7 8 49 64 0.142857 0.125000 2.645751 2.828427