干货!整理了50个 Pandas 高频使用技巧,强烈建议收藏!
扫描二维码
随时随地手机看文章
pandas
当中经常会被用到的方法,篇幅可能有点长但是提供的都是干货,读者朋友们看完之后也可以点赞收藏,相信会对大家有所帮助,大致本文会讲述这些内容- DataFrame初印象
- 读取表格型数据
- 筛选出特定的行
- 用
pandas
来绘图 - 在DataFrame中新增行与列
- DataFrame中的统计分析与计算
- DataFrame中排序问题
- 合并多个表格
- 时序问题的处理
- 字符串类型数据的处理
DataFrame初印象
我们先来通过Python
当中的字典类型来创建一个DataFrame,import pandas as pddata = {"Country": ["Canada", "USA", "UK"],
"Population": [10.52*10**6, 350.1*10**6, 65.2*10**6]
}
df = pd.DataFrame(data)
df
当你通过
Python
当中的字典来创建DataFrame,字典当中的keys
会被当做是列名,而values
则是表格当中的值 Country Population0 Canada 10520000.0
1 USA 350100000.0
2 UK 65200000.0
要是我们要获取当中的某一列,我们可以这么来做df["Country"]
output0 Portugal
1 USA
2 France
Name: Country, dtype: object
而当我们想要获取表格当中每一列的数据格式的时候,可以这么做df.dtypes
outputCountry object
Population float64
dtype: object
读取数据
Pandas
当中有特定的模块可以来读取数据,要是读取的文件是csv
格式,我们可以这么来做import pandas as pddf = pd.read_csv("titanic.csv")
我们要是想要查看表格的前面几行,可以这么做df.head(7)
output PassengerId Survived Pclass ... Fare Cabin Embarked
0 1 0 3 ... 7.2500 NaN S
1 2 1 1 ... 71.2833 C85 C
2 3 1 3 ... 7.9250 NaN S
3 4 1 1 ... 53.1000 C123 S
4 5 0 3 ... 8.0500 NaN S
5 6 0 3 ... 8.4583 NaN Q
6 7 0 1 ... 51.8625 E46 S
这里我们只是展示了前面7行的数据,当然我们也可以使用
tail()
方法来展示末尾的若干行的数据df.tail(7)output PassengerId Survived Pclass ... Fare Cabin Embarked
884 885 0 3 ... 7.050 NaN S
885 886 0 3 ... 29.125 NaN Q
886 887 0 2 ... 13.000 NaN S
887 888 1 1 ... 30.000 B42 S
888 889 0 3 ... 23.450 NaN S
889 890 1 1 ... 30.000 C148 C
890 891 0 3 ... 7.750 NaN Q
要是遇到文件的格式是
excel
格式,pandas
当中也有相对应的方法df = pd.read_excel("titanic.xlsx")可以通过
pandas
当中的info()
方法来获取对表格数据的一个初步的印象df.info()output
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PassengerId 891 non-null int64
1 Survived 891 non-null int64
2 Pclass 891 non-null int64
3 Name 891 non-null object
4 Sex 891 non-null object
5 Age 714 non-null float64
6 SibSp 891 non-null int64
7 Parch 891 non-null int64
8 Ticket 891 non-null object
9 Fare 891 non-null float64
10 Cabin 204 non-null object
11 Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7 KB
我们可以从上面的信息中看到例如哪些列可能存在一些空值,每一列的数据类型,占用内存的情况等等。
筛选出特定条件的行
要是我们想要筛选出年龄在30岁以上的乘客,我们可以这么来操作df[df["Age"] > 30]output PassengerId Survived Pclass ... Fare Cabin Embarked
1 2 1 1 ... 71.2833 C85 C
3 4 1 1 ... 53.1000 C123 S
4 5 0 3 ... 8.0500 NaN S
6 7 0 1 ... 51.8625 E46 S
11 12 1 1 ... 26.5500 C103 S
.. ... ... ... ... ... ... ...
873 874 0 3 ... 9.0000 NaN S
879 880 1 1 ... 83.1583 C50 C
881 882 0 3 ... 7.8958 NaN S
885 886 0 3 ... 29.1250 NaN Q
890 891 0 3 ... 7.7500 NaN Q
[305 rows x 12 columns]
当然我们也可以将若干个条件合起来,一同做筛选,例如survived_under_45 = df[(df["Survived"]==1)