Pandas-构建一个数据表

作者: Rainbow想喝奶茶 | 来源:发表于2022-01-19 17:44 被阅读0次

    今天的更新,是来看看如何构建一个Pandas,其实是在一个老铁分享的文章中学到的,感谢这位老铁。知识点主要有以下几个:

    • 构建时间序列
    • 从固定列表中,生成固定长度的随机数组
    • 创建DataFrame
    • 多个DataFrame合并
    • 应用现有字段生成新字段
      首先引入包:
    import pandas as pd
    import numpy as np
    

    注:NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。(其实看不太懂,但是直接用吧........

    生成固定日期的时间序列

    time=pd.date_range(start='12/1/2021', end='12/31/2021')
    #输出一个从2021年12月1日至2021年12月31日的时间序列
    

    打印time,输出结果如下所示:


    time输出结果

    其中 freq='D',意思是以天为切割单位,此项为默认设置,可以更改为其它数值。

    固定数据生成随机数组

    给定一个列表后,在此列表范围内,想要生成一定长度的新的列表,可以应用np.random.choice(list,size,replace,p)
    其中,list为抽取元素的给定列表;
    size规定了新的数组的大小;
    replace设置为True,意味着取出元素可重复,否则不可重复;
    p规定了取出每个元素的概率,默认所有元素取出概率一致。

    names = ['Amy', 'Tom', 'Mary', 'Maria', 'Selina', 'Ella']
    name_list = np.random.choice(names, size=len(time), replace=True)
    #从names中取元素,组成一个大小为time长度的数组,取出元素时可重复,所有元素取出概率一致。
    

    打印name_list,输出结果如下所示:


    name_list输出结果

    以此类推,构建出水果名称列表,及公斤数列表。

    fruits = ['牛油果', '香蕉', '草莓', '耙耙柑', '葡萄', '奶酪枣']
    fruit_list = np.random.choice(fruits, size=len(time_range), replace=True)
    kilogram = np.random.choice(range(1, 10), size=len(time_range), replace=True)
    

    创建DataFrame

    规定列名称,直接应用上方的各个一维数组构建。

    order = pd.DataFrame({
        "time": time,
        "fruit": fruit_list,
        "name": name_list,
        "kilogram": kilogram
    })
    

    类似的,创建出一个information DataFrame。

    information = pd.DataFrame({
        "fruit": fruits,
        "price": [1, 2, 3, 4, 5, 6],
        "region": ["华北", "西北", "西南", "东北", "东南", "华中"]
    })
    

    两个DataFrame的分别输出结果是:


    order部分数据 information

    多个DataFrame合并

    想要将两个表合并,应用下方语句:
    pd.merge(dataframe_a, dataframe_b,how='outer')
    合并a和b,并且是以去并集的形式,如果想要取交集,则how='inner'。
    这里希望合并order和information,并且以time升序排列,且重新构建新的DataFrame的索引。语句如下:

    df = pd.merge(order, information, how='outer').sort_values("time").reset_index(drop=True)
    

    输出结果为:


    df部分输出结果

    生成新的字段

    如果想依据现有字段生成新的字段,比如依据上方的kilogram和price算总价,则可以应用:

    df["amount"] = df["kilogram"] * df["price"]
    

    这个时候在输出df,可以看到,新的字段amount已经计算并匹配完成,结果为:


    df更新后部分输出结果

    好久不见,22年的开篇真的是拖了很久,最近都没有怎么上进了,每天仿佛都有新的事情要忙~~~

    但,今天可能是上进了,因为,我写到这里,已经感觉到疲惫了。

    仍然是自我记录,有错误欢迎指正~~~

    相关文章

      网友评论

        本文标题:Pandas-构建一个数据表

        本文链接:https://www.haomeiwen.com/subject/qxmrhrtx.html