美文网首页
pandas个人常用操作

pandas个人常用操作

作者: KyoDante | 来源:发表于2021-03-04 13:25 被阅读0次

    常用操作:

    以下操作均在,导入pandas并命名为pd之后进行,数据未给出,只给出大致的用法:

    import pandas as pd
    

    pandas的基本对象: DataFrame,整体的思想是希望像操作sql表一样,来便捷地操作表格数据。


    • 新建DataFrame
    ## 新建DataFrame
    列表 = [{},{},...] # 可以是一个对象数组
    df = pd.DataFrame(列表)
    
    ## 加载csv文件到DataFrame
    df = pd.read_csv(文件路径)
    
    ## 保存DataFrame到csv文件
    df.to_csv(路径, sep="\t", index=False) # 第一个参数是保存的路径,index参数是每个dataframe前面的index下标, sep是列之间的分隔符,此处指定为tab。分隔符可以为其它。
    

    • 遍历DataFrame
    ## 要以 Pandas 的方式迭代遍历DataFrame的行,可以使用:
    
    # 方式1
    for index, row in df.iterrows():    
      print(row["c1"], row["c2"])
    
    # 方式2
    for row in df.itertuples(index=True, name='Pandas'):    
      print(getattr(row, "c1"), getattr(row, "c2"))
    

    • 打印dataframe的前5条数据
    print(df.head())
    

    • 合并两个dataframe
    new_df = pd.merge(df, df, left_on='左键', right_on='右键') # 默认是'inner'的连接方式。
    

    • 丢弃列
    df = df.drop(['列名’], axis=1)
    

    • 单列分割为多列(比如date列数据为:年/月/日,分拆成三列数据。)
    df[['year', 'month', 'day']] = df['date'].str.split('/', 3, expand=True)
    
    • 多列合并为一列
    df['date'] = df['year'] + '/' + df['month'] + '/' + df['day']
    

    • 多组聚合
    final_data = df.groupby(by=["date", "post_id"], axis=0)["amount"].sum() # 对date列做第一次分组,然后再对post_id做第二次分组,然后对amount列进行求和。但是最后得到的结果会是优化后的显示表格,要还原成原本的表格形式,应该用reset_index()进行返回。
    final_data = final_data.reset_index()
    

    • 对列的每个元素做某个操作
    df['Label'].map(lambda x: int(x))
    

    相关文章

      网友评论

          本文标题:pandas个人常用操作

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