pandas技巧分析让数据分析效率提升数倍

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/brytlevson/article/details/101532555

Apply是为Pandas Series而设计的。如果你不太熟悉Series,可以将它想成类似Numpy的数组。

Apply将一个函数应用于指定轴上的每一个元素。使用Apply,可以将DataFrame列(是一个Series)的值进行格式设置和操作,不用循环,非常有用!

import numpy as np
import pandas as pd
s = pd.DataFrame([range(5), range(5)])
print(s)
 0  1  2  3  4
0  0  1  2  3  4
1  0  1  2  3  4

d = pd.DataFrame([[4, 9]]*3)
print(d)
   0  1
0  4  9
1  4  9
2  4  9

d01 = d.apply(np.sqrt)
print(d01)
     0    1
0  2.0  3.0
1  2.0  3.0
2  2.0  3.0

d02 = d01.apply(np.sum, axis=0)
print(d02)
0    6.0
1    9.0
dtype: float64

d03 = d.apply(np.mean, axis=1)
print(d03)
0    6.5
1    6.5
2    6.5
dtype: float64

下面是一些数据分析案列 主要是将apply 的应用:
一般我们拿到的特征中会有薪资,薪资的区间以及K 等字符是比较难处理的,下面是我目前处理的比较好的方法

import numpy as np
import pandas as pd
datas = pd.read_csv('./a.csv')

print(datas.head(10))
print(datas.City.value_counts())  # 按某列统计次数

def cut_word(word, method):
    position = word.find('-')
    length = len(word)
    if position != -1:  # 无 - 的话 结果返回-1
        bot_salary= word[:position - 1]
        top_salary = word[position + 1:length - 1]
    else:
        bot_salary= word[:word.upper().find("K")]
        top_salary = bot_salary
    if method == "bot":
        return bot_salary
    return top_salary 


data = datas.Salary.apply(cut_word, method="bot")
print(data.head(10))

运行结果:

 City Age  Gender   Salary  Work_in  Birthday  Indetify  Romote  Soh
0   北京  29    male  20k-28K     0.30       6.0        73      50    8
1   北京  29    male   10-18K     0.30       6.0        73      50    8
2   北京  29    male  2k-3k以上     0.30       6.0        73      50    8
3   北京  29    male      20k     0.30       6.0        73      50    8
4   北京  29    male     2k以上     0.30       6.0        73      50    8
5   北京  32  female       6k     0.50      26.0        58      55    6
6   上海  47    male    2k-4k     0.33       5.0       106      92    6
7   北京  30    male  12k-16k     0.30       7.0        76      58   11
8   武汉  37       f    2k-4k     0.40      23.0        68      72    8
9   上海  47  female    2k-4k     0.60      13.0        67      28   10
北京    38
上海    25
南京    17
武汉    10
广州     6
杭州     4
天津     4
深圳     2
Name: City, dtype: int64
0    20
1     1
2     2
3    20
4     2
5     6
6     2
7    12
8     2
9     2
Name: Salary, dtype: object

猜你喜欢

转载自blog.csdn.net/brytlevson/article/details/101532555