8000字概括精髓,pandas必知必会50例

从数据清洗到分析:用Pandas处理8000条Selenium爬取的招聘数据,我发现了这些趋势 本文详细介绍了如何使用Pandas处理8000条通过Selenium爬取的招聘数据,从数据清洗到分析的全过程。通过实战案例,展示了如何解析薪资范围、拆分工作地点、创建衍生字段以及进行可视化分析,揭示了行业薪资趋势和热门技术需求。文章还分享了数据增强技巧和深度洞察,帮助读者掌握数据分析的核心方法。 阅读详情

05207c73389681a8f50cb9db149cbcbd.png

剧照:凡人修仙传

大家好,我是菜鸟哥,看完了最新的凡人动漫30集,今天我们介绍pandas库当中一些非常基础的方法与函数,希望大家看了之后会有所收获!

准备需要的数据集

我们先准备生成一些随机数,作为后面需要用到的数据集

index = pd.date_range("1/1/2000", periods=8)

series = pd.Series(np.random.randn(5), index=["a", "b", "c", "d", "e"])

df = pd.DataFrame(np.random.randn(8, 3), index=index, columns=["A", "B", "C"])

Head and tail

head()和tail()方法是用来查看数据集当中的前几行和末尾几行的,默认是查看5行,当然读者朋友也可以自行设定行数

series2 = pd.Series(np.random.randn(100))
series2.head()

output

0    0.733801
1   -0.740149
2   -0.031863
3    2.515542
4    0.615291
dtype: float64

同理

series2.tail()

output

95   -0.526625
96   -0.234975
97    0.744299
98    0.434843
99   -0.609003
dtype: float64

数据的统计分析

在pandas当中用describe()方法来对表格中的数据做一个概括性的统计分析,例如

series2.describe()

output

count    100.000000
mean       0.040813
std        1.003012
min       -2.385316
25%       -0.627874
50%       -0.029732
75%        0.733579
max        2.515542
dtype: float64

当然,我们也可以设置好输出的分位

series2.describe(percentiles=[0.05, 0.25, 0.75, 0.95])

output

count    100.000000
mean       0.040813
std        1.003012
min       -2.385316
5%        -1.568183
25%       -0.627874
50%       -0.029732
75%        0.733579
95%        1.560211
max        2.515542
dtype: float64

对于离散型的数据来说,describe()方法给出的结果则会简洁很多

s = pd.Series(["a", "a", "b", "b", "a", "a", "d", "c", "d", "a"])
s.describe()

output

count     10
unique     4
top        a
freq       5
dtype: object

要是表格中既包含了离散型数据,也包含了连续型的数据,默认的话,describe()是会针对连续型数据进行统计分析

df2 = pd.DataFrame({"a": ["Yes", "Yes", "No", "No"], "b": np.random.randn(4)})
df2.describe()

output

b
count  4.000000
mean   0.336053
std    1.398306
min   -1.229344
25%   -0.643614
50%    0.461329
75%    1.440995
max    1.650898

当然我们也可以指定让其强制统计分析离散型数据或者连续型数据

df2.describe(include=["object"])

output

a
count     4
unique    2
top     Yes
freq      2

同理,我们也可以指定连续型的数据进行统计分析

df2.describe(include=["number"])

output

b
count  4.000000
mean  -0.593695
std    0.686618
min   -1.538640
25%   -0.818440
50%   -0.459147
75%   -0.234401
max    0.082155

如果我们都要去做统计分析,可以这么来执行

df2.describe(include="all")

output

a         b
count     4  4.000000
unique    2       NaN
top     Yes       NaN
freq      2       NaN
mean    NaN  0.292523
std     NaN  1.523908
min     NaN -1.906221
25%     NaN -0.113774
50%     NaN  0.789560
75%     NaN  1.195858
max     NaN  1.497193

最大/最小值的位置

idxmin()和idxmax()方法是用来查找表格当中最大/最小值的位置,返回的是值的索引

s1 = pd.Series(np.random.randn(5))
s1

output

s1.idxmin(), s1.idxmax()

output

(0, 3)

用在DataFrame上面的话,如下

df1 = pd.DataFrame(np.random.randn(5, 3), columns=["A", "B", "C"])
df1.idxmin(axis=0)

output

A    4
B    2
C    1
dtype: int64

同理,我们将axis参数改成1

df1.idxmin(axis=1)

output

0    C
1    C
2    C
3    B
4    A
dtype: object

value_counts()方法

pandas当中的value_counts()方法主要用于数据表的计数以及排序,用来查看表格当中,指定列有多少个不同的数据值并且计算不同值在该列当中出现的次数,先来看一个简单的例子

df = pd.DataFrame({'城市': ['北京', '广州', '上海', '上海', '杭州', '成都', '香港', '南京', '北京', '北京'],
                   '收入': [10000, 10000, 5500, 5500, 4000, 50000, 8000, 5000, 5200, 5600],
                   '年龄': [50, 43, 34, 40, 25, 25, 45, 32, 25, 25]})
df["城市"].value_counts()

output

北京    3
上海    2
广州    1
杭州    1
成都    1
香港    1
南京    1
Name: 城市, dtype: int64

可以看到北京出现了3次,上海出现了2次,并且默认采用的是降序来排列的,下面我们来看一下用升序的方式来排列一下收入这一列

df["收入"].value_counts(ascending=True)

output

4000     1
50000    1
8000     1
5000     1
5200     1
5600     1
10000    2
5500     2
Name: 收入, dtype: int64

同时里面也还可以利用参数normalize=True,来计算不同值的计数占比

df['年龄'].value_counts(ascending=True,normalize=True)

output

50    0.1
43    0.1
34    0.1
40    0.1
45    0.1
32    0.1
25    0.4
Name: 年龄, dtype: float64

数据分组

我们可以使用cut()方法以及qcut()方法来对表格中的连续型数据分组,首先我们看一下cut()方法,假设下面这组数据代表的是小组每个成员的年龄

ages = np.array([2,3,10,40,36,45,58,62,85,89,95,18,20,25,35,32])
pd.cut(ages, 5)

output

[(1.907, 20.6], (1.907, 20.6], (1.907, 20.6], (39.2, 57.8], (20.6, 39.2], ..., (1.907, 20.6], (1.907, 20.6], (20.6, 39.2], (20.6, 39.2], (20.6, 39.2]]
Length: 16
Categories (5, interval[float64, right]): [(1.907, 20.6] < (20.6, 39.2] < (39.2, 57.8] <
                                           (57.8, 76.4] < (76.4, 95.0]]

由上可以看到用cut()方法将数据平分成了5个区间,且区间两边都有扩展以包含最大值和最小值,当然我们也可以给每一个区间加上标记

pd.cut(ages, 5, labels=[u"婴儿",u"少年",u"青年",u"中年",u"老年"])

output

['婴儿', '婴儿', '婴儿', '青年', '少年', ..., '婴儿', '婴儿', '少年', '少年', '少年']
Length: 16
Categories (5, object): ['婴儿' < '少年' < '青年' < '中年' < '老年']

而对于qcut()方法来说,我们可以指定区间来进行分组,例如

pd.qcut(ages, [0,0.5,1], labels=['小朋友','大孩子'])

output

['小朋友', '小朋友', '小朋友', '大孩子', '大孩子', ..., '小朋友', '小朋友', '小朋友', '小朋友', '小朋友']
Length: 16
Categories (2, object): ['小朋友' < '大孩子']

这里将年龄这组数据分成两部分[0, 0.5, 1],一组是标上标记小朋友,另一组是大孩子,不过通常情况下,我们用的cut()方法比较多

引用函数

要是在表格当中引用其他的方法,或者是自建的函数,可以使用通过pandas当中的以下这几个方法

  • pipe()

  • apply()和applymap()

  • agg()和transform()

pipe()方法

首先我们来看pipe()这个方法,我们可以将自己定义好的函数,以链路的形式一个接着一个传给我们要处理的数据集上

def extract_city_name(df):
    df["state_name"] = df["state_and_code"].str.split(",").str.get(0)
    return df

def add_country_name(df, country_name=None):
    df["state_and_country"] = df["state_name"] + country_name
    return df

然后我们用pip()这个方法来将上面我们定义的函数串联起来

df_p = pd.DataFrame({"city_and_code": ["Arizona, AZ"]})
df_p = pd.DataFrame({"state_and_code": ["Arizona, AZ"]})
df_p.pipe(extract_city_name).pipe(add_country_name, country_name="_USA")

output

state_and_code state_name state_and_country
0    Arizona, AZ    Arizona       Arizona_USA
apply()方法和applymap()方法

apply()方法可以对表格中的数据按照行或者是列方向进行处理,默认是按照列方向,如下

df.apply(np.mean)

output

A   -0.101751
B   -0.360288
C   -0.637433
dtype: float64

当然,我们也可以通过axis参数来进行调节

df.apply(np.mean, axis = 1)

output

0   -0.803675
1   -0.179640
2   -1.200973
3    0.156888
4    0.381631
5    0.049274
6    1.174923
7    0.612591
dtype: float64

除此之外,我们也可以直接调用匿名函数lambda的形式

df.apply(lambda x: x.max() - x.min())

output

A    1.922863
B    2.874672
C    1.943930
dtype: float64

也可以调用自己定义的函数方法

df = pd.DataFrame(np.random.randn(5, 3), columns=["A", "B", "C"])
def normalize(x):
    return (x - x.mean()) / x.std()

我们用上apply()方法

df.apply(normalize)

output

A         B         C
0  1.149795  0.390263 -0.813770
1  0.805843 -0.532374  0.859627
2  0.047824 -0.085334 -0.067179
3 -0.903319 -1.215023  1.149538
4 -1.100144  1.442467 -1.128216

apply()方法作用于数据集当中的每个行或者是列,而applymap()方法则是对数据集当中的所有元素都进行处理

df = pd.DataFrame({'key1' : ['a', 'c', 'b', 'b', 'd'],
                   'key2' : ['one', 'two', 'three', 'two', 'one'],
                   'data1' : np.arange(1, 6),
                   'data2' : np.arange(10,15)})

output

key1   key2  data1  data2
0    a    one      1     10
1    c    two      2     11
2    b  three      3     12
3    b   four      4     13
4    d   five      5     14

我们来自定义一个函数

def add_A(x):
    return "A" + str(x)
    
df.applymap(add_A)

output

key1    key2 data1 data2
0   Aa    Aone    A1   A10
1   Ac    Atwo    A2   A11
2   Ab  Athree    A3   A12
3   Ab   Afour    A4   A13
4   Ad   Afive    A5   A14

我们然后也可以通过lambda()自定义函数方法,然后来去除掉这个A

df.applymap(add_A).applymap(lambda x: x.split("A")[1])

output

key1   key2 data1 data2
0    a    one     1    10
1    c    two     2    11
2    b  three     3    12
3    b   four     4    13
4    d   five     5    14

agg()方法和transform()方法

agg()方法本意上是聚合函数,我们可以将用于统计分析的一系列方法都放置其中,并且放置多个

df = pd.DataFrame(np.random.randn(5, 3), columns=["A", "B", "C"])
df.agg(np.sum)

output

A    0.178156
B    3.233845
C   -0.859622
dtype: float64

当然,当中的np.sum部分也可以用字符串来表示,例如

df.agg("sum")

output

A   -0.606484
B   -1.491742
C   -1.732083
dtype: float64

我们尝试在当中放置多个统计分析的函数方法

df.agg(["sum", "mean", "median"])

output

A         B         C
sum     1.964847  3.855801  0.630042
mean    0.392969  0.771160  0.126008
median  0.821005  0.714804 -0.273685

当然我们也可以和lambda匿名函数混合着搭配

df.agg(["sum", lambda x: x.mean()])

output

A         B         C
sum      -0.066486 -1.288341 -1.236244
<lambda> -0.013297 -0.257668 -0.247249

或者和自己定义的函数方法混合着用

def my_mean(x):
    return x.mean()
    
df.agg(["sum", my_mean])

output

A         B         C
sum     -4.850201 -1.544773  0.429007
my_mean -0.970040 -0.308955  0.085801

与此同时,我们在agg()方法中添加字典,实现不同的列使用不同的函数方法

df.agg({"A": "sum", "B": "mean"})

output

A   -0.801753
B    0.097550
dtype: float64

例如

df.agg({"A": ["sum", "min"], "B": "mean"})

output

A         B
sum   0.911243       NaN
min  -0.720225       NaN
mean       NaN  0.373411

而当数据集当中既有连续型变量,又有离散型变量的时候,用agg()方法则就会弄巧成拙了

df = pd.DataFrame(
    {
        "A": [1, 2, 3],
        "B": [1.0, 2.0, 3.0],
        "C": ["test1", "test2", "test3"],
        "D": pd.date_range("20211101", periods=3),
    }
)

df.agg(["min", "sum"])

output

A    B                C          D
min  1  1.0            test1 2021-11-01
sum  6  6.0  test1test2test3        NaT

出来的结果可能并非是用户所想要的了,而至于transform()方法,其效果和用法都和agg()方法及其的相似,这边也就不多做赘述

索引和列名的重命名

针对索引和列名的重命名,我们可以通过pandas当中的rename()方法来实现,例如我们有这样一个数据集

df1 = pd.DataFrame(np.random.randn(5, 3), columns=["A", "B", "C"],
                   index = ["a", "b", "c", "d", "e"])

output

A         B         C
a  0.343690  0.869984 -1.929814
b  1.025613  0.470155 -0.242463
c -0.400908 -0.362684  0.226857
d -1.339706 -0.302005 -1.784452
e -0.957026 -0.813600  0.215098

我们可以这样来操作

df1.rename(columns={"A": "one", "B": "two", "C": "three"},
                 index={"a": "apple", "b": "banana", "c": "cat"})

output

one       two     three
apple   0.383813  0.588964 -0.162386
banana -0.462068 -2.938896  0.935492
cat    -0.059807 -1.987281  0.095432
d      -0.085230  2.013733 -1.324039
e      -0.678352  0.306776  0.808697

当然我们可以拆开来,单独对行或者是列进行重命名,对列的重命名可以这么来做

df1.rename({"A": "one", "B": "two", "C": "three"}, axis = "columns")

output

one       two     three
a -0.997108 -1.383011  0.474298
b  1.009910  0.286303  1.120783
c  1.130700 -0.566922  1.841451
d -0.350438 -0.171079 -0.079804
e  0.988050 -0.524604  0.653306

对行的重命名则可以这么来做

df1.rename({"a": "apple", "b": "banana", "c": "cat"}, axis = "index")

output

A         B         C
apple   0.590589 -0.311803 -0.782117
banana  1.528043 -0.944476 -0.337584
cat     1.326057 -0.087368  0.041444
d       1.079768 -0.098314 -0.210999
e       1.654869  1.170333  0.506194

排序

在pandas当中,我们可以针对数据集当中的值来进行排序

df1 = pd.DataFrame(
    {"one": [2, 1, 1, 1], "two": [1, 3, 2, 4], "three": [5, 4, 3, 2]}
)

output

one  two  three
0    2    1      5
1    1    3      4
2    1    2      3
3    1    4      2

我们按照“three”这一列当中的数值来进行排序

df1.sort_values(by = "three")

output

one  two  three
3    1    4      2
2    1    2      3
1    1    3      4
0    2    1      5

我们也可以依照多列进行排序

df1.sort_values(by = ["one", "two"])

output

one  two  three
2    1    2      3
1    1    3      4
3    1    4      2
0    2    1      5

在“one”这一列相等的时候,比较“two”这一列数值的大小,在排序的过程当中,默认采用的都是升序,我们可以改成降序来进行编排

df1.sort_values("two", ascending=False)

output

one  two  three
3    1    4      2
1    1    3      4
2    1    2      3
0    2    1      5

数据类型的转换

最后涉及到的是数据类型的转换,在这之前,我们先得知道如何来查看数据的类型,pandas当中有相应的方法可以处理

df2 = pd.DataFrame(
    {
        "A": pd.Series(np.random.randn(5), dtype="float16"),
        "B": pd.Series(np.random.randn(5)),
        "C": pd.Series(np.array(np.random.randn(5), dtype="uint8")),
    }
)

output

A         B    C
0 -0.498779 -0.501512    0
1 -0.055817 -0.528227  254
2 -0.914551  0.763298    1
3 -0.916016  1.366833    0
4  1.993164  1.834457    0

我们通过dtypes属性来查看数据的类型

A    float16
B    float64
C      uint8
dtype: object

而通过astype()方法来实现数据类型的转换

df2["B"].astype("int64")

output

0    0
1    0
2    0
3    2
4    1
Name: B, dtype: int64

根据数据类型来筛选

与此同时,我们也可以根据相对应的数据类型来进行筛选,运用pandas当中的select_dtypes方法,我们先来创建一个数据集包含了各种数据类型的

df = pd.DataFrame(
    {
        "string_1": list("abcde"),
        "int64_1": list(range(1, 6)),
        "uint8_1": np.arange(3, 8).astype("u1"),
        "float64_1": np.arange(4.0, 9.0),
        "bool1": [True, False, True, True, False],
        "bool2": [False, True, False, False, True],
        "dates_1": pd.date_range("now", periods=5),
        "category_1": pd.Series(list("ABCDE")).astype("category"),
    }
)

output

string_1  int64_1  uint8_1  ...  bool2                      dates_1  category_1
0      a      1      3  ...  False 2021-11-10 10:43:05.957685         A
1      b      2      4  ...   True 2021-11-11 10:43:05.957685         B
2      c      3      5  ...  False 2021-11-12 10:43:05.957685         C
3      d      4      6  ...  False 2021-11-13 10:43:05.957685         D
4      e      5      7  ...   True 2021-11-14 10:43:05.957685         E

我们先来查看一下各个列的数据类型

df.dtypes

output

string_1              object
int64_1                int64
uint8_1                uint8
float64_1            float64
bool1                   bool
bool2                   bool
dates_1       datetime64[ns]
category_1          category
dtype: object

我们筛选类型为布尔值的数据

df.select_dtypes(include=[bool])

output

bool1  bool2
0   True  False
1  False   True
2   True  False
3   True  False
4  False   True

筛选出数据类型为整型的数据

df.select_dtypes(include=['int64'])

output

int64_1
0      1
1      2
2      3
3      4
4      5
推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,看200个Python案例!

Matplotlib 绘图从入门到精通:8000字喂饭级教程 本文介绍了 Python 绘图库 Matplotlib 的使用方法: 环境配置:Windows 用户用 pip、macOS 用户用 Anaconda 安装,安装后通过导入模块并输出版本号验证。 图像结构:核心组件为 Figure(画布)、Axes(绘图区域)、Axis(坐标轴)。通过代码展示了如何创建及组合它们来绘图。 交互模式:能实时更新图形,通过 plt.ion ()、plt.ioff ()、plt.isinteractive () 控制,Jupyter 用户需安装 ipympl 包并启用。 常用绘图: 阅读详情

相关推荐

边缘设备选型指南:从数据采集到AI推理,工业物联网硬件如何匹配你的需求?

本文提供了一份全面的工业物联网边缘设备选型指南,系统性地阐述了如何根据数据采集、协议兼容性、边缘AI推理算力及环境适应性等核心需求匹配硬件。文章深入剖析了从CPU/GPU/NPU选择到MQTT、Sparkplug B等工业协议支持的实战考量,并强调了软件生态与全生命周期成本的重要性,旨在帮助项目负责人在复杂场景中做出明智决策。

weixin_29168813的博客 88

Pandas知识点超全总结

详细介绍pandas模块

Itsme_MrJJ的博客 1万+

【matlab】MATLAB 变量详解与应用

在 MATLAB 中,变量可以通过赋值操作进行定义。例如,要定义一个名为xx = 10;在这个例子中,我们创建了一个名为x的变量,并将其赋值为 10。需要注意的是,MATLAB 是一种动态类型语言,因此不需要显式地声明变量的类型。变量名必须以字母开头。变量名可以包含字母、数字和下划线。变量名区分大小写。不要使用 MATLAB 中的关键字(如forif等)作为变量名。

小吴同学的博客 2213

Pandas(四)--自定义函数

应用方法pipe、apply、applymap 应用自定义的函数,或者把其他库中的函数应用到 Pandas 对象中,有以下三种方法: 1)操作整个 DataFrame 的函数:pipe() 2)操作行或者列的函数:apply() 3)操作单一元素的函数:applymap() 如何从上述函数中选择适合的函数,这取决于函数的操作对象。下面介绍了三种方法的使用。 操作整个数据表 通过给 pipe() 函数传递一个自定义函数和参数值,从而操作 DataFrme 中的所有元素。 # 下面示例,实...

Hanscal 535

医学图像标注工具教程——从零开始使用3D Slicer进行医学图像手动分割

3D Slicer手动分割软件下载及安装数据导入导入CT序列文件夹导入单张超声基本交互操作窗位和窗宽的调整改变切片及寻找特定点对应的三维切片图像分割功能介绍PaintDrawEraseLevel tracingGrow from seedsFill between slicesThreshold & Margin & HollowSmoothingScissors & IslandsLogical operator分割结果的保存 软件下载及安装 下载地址:官网的4.11.0版本 数据

神仙院B栋4楼保安的博客 1万+

保姆级教程:用NILMTK和REDD数据集,5分钟跑通你的第一个负荷分解模型

本文提供了一份详细的NILMTK和REDD数据集负荷分解模型教程,适合零基础用户快速上手。从环境准备、数据获取到模型构建和评估,全程仅需5分钟即可完成。特别适合希望快速入门非侵入式负荷分解(NILM)的开发者,涵盖数据预处理、模型训练及结果可视化等关键步骤。

weixin_30493401的博客 442

Pandas知识点-详解表级操作管道函数pipe

pandas系列。

weixin_43790276的博客 3241

Unity 热更新技术 | (二) AssetBundle - 完整系列教程学习

开始学习热更新方面系列知识,就从这一篇开始吧! 本系列教程 会从热更新基本概念出发,详细介绍热更新相关的全套知识点。 如热更新技术基本原理、热更新主流方案、AssetBundle系列教程、Lua语言编程、Lua与Unity交互教程、Xlua框架使用、热更新实战教程等方面。 热更新作为一个开发者必备技能,如果想学习的话,可以从现在开始了哦~ 接下来从 AssetBundle - 完整系列教程学习 开始学习吧!

努力前行,总会成为自己心中的那道光 1万+

pandas 必背函数操作

1、五个常用属性 index,columns,shape,values,dtypes2、常用函数:set_index,reset_index,del df['column_name'],pd.read_csv3、时间、数字、字符串转换 #字符串转换、切割 df['column_name'].astype(str).str.slice(0,10) #数字转换 pd.to_numeric(df...

weixin_34413357的博客 168

FreeRTOS深入教程(任务创建的深入和任务调度机制分析)

本篇文章将带大家深入学习任务的创建和分析任务调度的机制。本篇文章深入的讲解了任务创建的内部实现和任务调度的源代码分析和实现,学习这篇文章有助于更深入的学习FreeRTOS的源码。

m0_49476241的博客 6391

PyTorch实战(4)——卷积神经网络(Convolutional Neural Network,CNN)

卷积神经网络 (Convolutional Neural Network, CNN) 是一种广泛应用的深度学习模型。通过参数共享、局部感知和空间结构等优势,能够更好地处理图像数据,并在图像识别、目标检测和图像生成等任务中展现出强大的能力。在本节中,介绍了卷积的计算方法以及卷积神经网络的基本组件,并使用 PyTorch 构建了卷积神经网络以深入了解其工作原理。

盼小辉丶的博客 1万+

pandas小记:pandas时间序列分析和处理Timeseries

http://blog.youkuaiyun.com/pipisorry/article/details/52209377pandas 最基本的时间序列类型就是以时间戳(TimeStamp)为 index 元素的 Series 类型。其它时间序列处理相关的包[P4J 0.6: Periodic light curve analysis tools based on Information Theory][p4

皮皮blog 10万+

5ZCM6ZGrVDllSFLkv6Hmga/ljJbnrqHnkIbns7vnu58= GetFlowDropDown SQL注入

5ZCM6ZGrVDllSFLkv6Hmga/ljJbnrqHnkIbns7vnu58=、eHR/OA一体化智慧云平台、智慧一卡通云平台、行业软件开发与定制、智慧企业管理信息化咨询与项目服务为核心业务的顾问式管理咨询和软件个性定制开发的高科技股份集团公司。同鑫T9eHR信息华管理系统存在SQL注入漏洞,攻击者可通过该漏洞上传shell。关闭互联网暴露面或接口设置访问权限。利用sqlmap进行shell。

iSee857的博客 701

8000 字概括精髓,pandas 必知必会 50 例

这是「进击的Coder」的第 511篇技术分享作者:俊欣来源:关于数据分析与可视化“ 阅读本文大概需要12分钟。 ”本篇我们继续前面pandas系列教程的探讨,今天小编会介绍pand...

静觅 171

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Python】8000字概括精髓,pandas必知必会50例

本篇我们继续前面pandas系列教程的探讨,今天小编会介绍pandas库当中一些非常基础的方法与函数,希望大家看了之后会有所收获。准备需要的数据集我们先准备生成一些随机数,作为后面需要用到...

fengdu78的博客 206

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

肝了一夜,8000字概括精髓,pandas必知必会50例!

今天小编会介绍pandas库当中一些非常基础的方法与函数,希望大家看了之后会有所收获,另外呢,大家要是希望小编写什么样子类型的文章,也可以在评论区留言,小编第一时间看到就会回复。准备需要的...

cainiao_python的博客 165

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

pg8000 使用教程

pg8000 是一个纯 Python 编写的 PostgreSQL 驱动程序,完全符合 DB-API 2.0 标准。它支持 Python 3.8 及以上版本,包括 CPython 和 PyPy,并且兼容 PostgreSQL 12 及以上版本。pg8000 的设计理念是提供一个高效、易用的 PostgreSQL 接口,适用于各种 Python 应用场景。 ## 2. 项目快速启动 ### 安装

gitblog_00025的博客 815

Pandas必知必会:4种数据透视函数

大家好,我是丁小杰!今天和大家分享Pandas中四种有关数据透视的通用函数,在数据处理中遇到这类需求时,能够很好地应对。

2402_82606500的博客 1864

Python---Pandas万字总结(3)

实际工作中,有些异常值可能是由系统或人为原因造成的,但有些异常值却不是,它们能够重复且稳定的出现,属于正常的极端值,例如很多游戏产品中头部玩家的数据往往都是离群的极端值。当然,在如今信息化发展迅速,数据量庞大的时代,我们拿到的数据未必是质量很好的,可能还需要对数据中的缺失值、重复值、异常值进行适当的处理。通常,从 Excel、CSV 或数据库中获取到的数据并不是非常完美的,里面可能因为系统或人为的原因混入了重复值或异常值,也可能在某些字段上存在缺失值;

Wanyu667的博客 1015

Pandas教程

Pandas 是 Python 中一个强大的数据处理库,广泛应用于数据分析、数据清洗、数据探索等领域。Series和DataFrame。Series是一种一维标签化数组,可以包含任何数据类型(整数、字符串、浮点数、Python 对象等)。在 Pandas 中,Series可以看作是带有标签的一维数组,这些标签被称为索引。

weixin_73585495的博客 2750

8000 字 Python 数据可视化实操指南

1. 前言大家好,今天让我们看一下使用Python进行数据可视化的主要库,以及可以使用它们完成的所有类型的图表。我们还将看到建议在每种情况下,使用哪个库以及每个库的独特功能。我们将从最基本...

Python小二 1225

从数据清洗到分析:用Pandas处理你那8000条Selenium爬来的招聘数据(实战案例)

本文详细介绍了如何使用Pandas对Selenium爬取的8000条招聘数据进行清洗、分析和可视化。从处理缺失值、解析薪资字段到技能关键词提取和城市薪资热力图生成,提供了一套完整的数据处理流程。通过实战案例,帮助数据分析师高效处理爬虫数据,挖掘有价值的商业洞察。

weixin_30919571的博客 497

Numpy和Pandas库的应用

df = pd.read_excel('1月.xlsx')# x是“宝贝标题”对应的列# value_counts()函数用于Serise对象中的每个值进行计数并且排序max1.__name__ = "购买次数最多"df1 = df.agg({'宝贝标题': [max1],'数量': ['sum', 'mean'],'买家实际支付金额': ['sum', 'mean']})print(df1)宝贝标题 数量 买家实际支付金额购买次数最多 零基础学Python NaN NaN。

2301_80121720的博客 3000

50,[行列转换+多维度分别分组聚合]Python数分之Pandas训练,力扣,1205. 每月交易 II

Python数分之Pandas训练 不同方法和详细思路与步骤 解:力扣,1205. 每月交易 II

qq_55006020的博客 1309
上一篇: 开心,腾讯的数据分析证书到手了!
下一篇: 年度盘点!Python 的 10 大最佳 IDE,你最爱哪一款?
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值