Pandas的 DataFrame 和 Series

以下内容是Google机器学习课程关于pandas的学习笔记,学习地址是https://colab.research.google.com/notebooks/mlcc/intro_to_pandas.ipynb?hl=zh-cn#scrollTo=QvJBqX8_Bctk

DataFrame 和 Series

Pandas 中的主要数据结构被实现为以下两类:
1. DataFrame,可以将它想象成一个关系型数据表格,其中包含多个行和已命名的列。
2. Series,它是单一列。DataFrame 中包含一个或多个 Series,每个 Series 均有一个名称。

学习Demo

import pandas as pd
import numpy as np

if __name__ == "__main__":
    """
    构建Series
    """
    print('------------------构建Series------------------------')
    print(pd.Series(["San Francisco", "San Jose", "Sacramento"]))
    """
    构建DataFrame
    如果 Series 在长度上不一致,系统会用特殊的 NA/NaN 值填充缺失的值。
    """
    print('------------------构建DataFrame---------------------')
    city_names = pd.Series(["San Francisco", "San Jose", "Sacramento"])
    population = pd.Series([852469, 1015785, 485199])
    print(pd.DataFrame({'City name': city_names, 'Population':population}))
    """
    DataFrame.describe可以对DataFrame中的数据进行一些简单的统计
    """
    print('----------------使用DataFrame.describe进行统计--------------')
    california_housing_dataframe = pd.read_csv(
        "https://storage.googleapis.com/mledu-datasets/california_housing_train.csv", sep=",")
    print(california_housing_dataframe.describe())
    """
    显示 DataFrame 的前几个记录
    """
    print('-----------------显示 DataFrame 的前几个记录--------------')
    print(california_housing_dataframe.head())
    """
    操控数据
    """
    print('------------------------改变一列的值------------------------')
    cities = pd.DataFrame({'City name': city_names, 'Population': population})
    cities["Population"] /= 1000
    print(cities)
    print('-------------------------新增列-----------------------')
    cities['Area square miles'] = pd.Series([46.87, 176.53, 97.92])
    cities['Population density'] = cities['Population'] / cities['Area square miles']
    print(cities)
    """
    练习:使用lambda操作Series
        为DataFrame添加一个Series:城市名以San开头,面积大于50平方英里(布尔类型)
    """
    print('-----------------------使用lambda-----------------------')
    cities['Is wide and has saint name'] = (cities['Area square miles'] > 50) & (cities['City name'].apply(lambda name : name.startswith('San')))
    print(cities)
    """
    索引:Series 和 DataFrame 对象定义了 index 属性

    默认情况下,在构造时,pandas 会赋可反映源数据顺序的索引值。索引值在创建后是稳定的;也就是说,它们不会因为数据重新排序而发生改变。
    """
    print('--------------------------索引------------------------------')
    print(cities.index)
    """
    重建索引是一种随机排列 DataFrame 的绝佳方式。在下面的示例中,会取用类似数组的索引,然后将其传递至 NumPy 的 
    random.permutation 函数,该函数会随机排列其值的位置。如果使用此重新随机排列的数组调用 reindex,
    会导致 DataFrame 行以同样的方式随机排列。
    """
    print('------------------------随机打乱索引-------------------------')
    print(cities.reindex(np.random.permutation(cities.index)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值