pandas lessons系列文章
lesson_one—通过sort和max方法 获取csv文件中最值数据
lesson_two—通过unique()和describe()统计csv文件中的数据
构建数据
def create_data():
# 初始数据集: 婴儿名字和出生率
names = ['Bob','Jessica','Mary','John','Mel']
births = [968, 155, 77, 578, 973]
BabyDataList = list(zip(names, births))
return BabyDataList
写入文件
def main():
BabyDataSet = create_data()
# df 是一个 DataFrame对象。可以把这个对象理解为包含了 BabyDataSet 的内容而格式非常象一个 sql 表格或者 Excel 的数据表
df = pd.DataFrame(data = BabyDataSet, columns=['Names', 'Births'])
# 将df数据输出到csv文件中,将index和header设置为 False 将会防止索引(index)和列名(header names)被导出到文件中
df.to_csv('births.csv', index=False, header=False)
如果对 DataFrame
结构不了解的话可以看看这篇博客:Pandas数据结构–Series、DataFrame详解
读取文件
#从当前的位置读取 csv 文件
Location = r'./births.csv'
df = pd.read_csv(Location)
# read_csv 函数将 csv 文件中的第一行作为了每列的列名(head names)。 这明显不对,因为数据文件没有提供列名。
# 要修正这个错误,我们需要给 read_csv 函数传入 header 这个参数,并设置为None (Python中 null 的意思)。
df = pd.read_csv(Location, header=None)
# 如果我们需要为每一列指定一个名字,我们可以传入另外一个参数 names,同时去掉 header 这个参数
df = pd.read_csv(Location, names=['Names', 'Births'])
print(df)
结果如下:
获取最大值
# 若要获取出生数量最大值,可以通过两种方法
# 方法一 排序
Sorted = df.sort_values(['Births'], ascending=False)
print(Sorted.head(1))
# 方法二 max()属性
print(df['Births'].max())
结果如下:
红色部分是方法一的结果
总结
以上是通过sort和max方法提取csv文件中最值数据的方法,当然还有其他方法实现最值数据的提取,欢迎大家讨论。