背景
这个并不是书籍里的章节,因为书籍中的 pandas 节奏太快了,基本都是涉及很多中高级的操作,好容易把小伙伴给劝退。我这里先出几期入门的教程,然后再回到书籍里的教程。这几章节作为入门,书籍作为进阶。
Pandas读取CSV
读取 CSV 文件
存储大数据集的一个简单方法是使用CSV文件(逗号分隔文件)。CSV文件包含纯文本,是一种众所周知的格式,包括Pandas在内的所有人都可以阅读。在我们的例子中,我们将使用一个名为'data.csv'的CSV文件。
Download data.csv[1]. or Open data.csv[2]
代码语言:javascript复制import pandas as pd
df = pd.read_csv('data.csv')
print(df.to_string())
Tip: 使用
to_string()
来打印整个DataFrame。
如果你有一个有很多行的大型DataFrame,Pandas将只返回前5行,和最后5行
max_rows
返回的行数在Pandas选项设置中定义。
你可以用pd.options.display.max_rows
语句检查你的系统的最大行数。
import pandas as pd
print(pd.options.display.max_rows)
在我的系统中,这个数字是60,这意味着如果DataFrame包含超过60行,print(df)
语句将只返回标题和第一和最后5行。
你可以用同样的语句改变最大行数。
代码语言:javascript复制import pandas as pd
pd.options.display.max_rows = 9999
df = pd.read_csv('data.csv')
print(df)
Pandas读取JSON
大数据集通常以JSON形式存储,或提取。JSON是纯文本,但具有对象的格式,在编程的世界里是众所周知的,包括Pandas。在我们的例子中,我们将使用一个名为 "data.json "的JSON文件。
Open data.json[3].
代码语言:javascript复制import pandas as pd
df = pd.read_json('data.json')
print(df.to_string())
Tip: 使用
to_string()
来打印整个DataFrame。
作为JSON的字典
JSON = Python Dictionary JSON对象的格式与Python字典相同。
如果你的JSON代码不在文件中,而是在Python字典中,你可以直接把它加载到一个DataFrame中:
代码语言:javascript复制import pandas as pd
data = {
"Duration":{
"0":60,
"1":60,
"2":60,
"3":45,
"4":45,
"5":60
},
"Pulse":{
"0":110,
"1":117,
"2":103,
"3":109,
"4":117,
"5":102
},
"Maxpulse":{
"0":130,
"1":145,
"2":135,
"3":175,
"4":148,
"5":127
},
"Calories":{
"0":409,
"1":479,
"2":340,
"3":282,
"4":406,
"5":300
}
}
df = pd.DataFrame(data)
print(df)
Pandas - 分析DataFrames
查看数据
获取DataFrame快速概览的最常用方法之一是head()
方法。head()
方法返回标题和指定行数,从顶部开始。
import pandas as pd
df = pd.read_csv('data.csv')
print(df.head(10))
在我们的例子中,我们将使用一个名为'data.csv'的CSV文件。下载 data.csv[4], 或者在你的浏览器打开 data.csv[5]
**Note: **如果没有指定行数,
head()
方法将返回前5行。
还有一个tail()
方法用于查看DataFrame的最后行。tail()
方法返回标题和指定行数,从底部开始。
print(df.tail())
关于数据的信息
DataFrames对象有一个叫做info()
的方法,可以给你提供更多关于数据集的信息。
print(df.info())
结果解释
结果告诉我们有169行和4列
RangeIndex: 169 entries, 0 to 168
Data columns (total 4 columns):
而每一列的名称,与数据类型
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Duration 169 non-null int64
1 Pulse 169 non-null int64
2 Maxpulse 169 non-null int64
3 Calories 164 non-null float64
空值
info()
方法还告诉我们每一列有多少个非空值,在我们的数据集中,似乎在 "卡路里 "列有164个非空值。这意味着在 "卡路里 "列中,有5行没有任何数值,不管是什么原因。在分析数据时,空值或Null值可能是不好的,你应该考虑删除有空值的行。这就是所谓的清理数据的一个步骤,在接下来的章节中你会学到更多关于这方面的知识。