前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python-科学计算-pandas-18-df拼接concat

Python-科学计算-pandas-18-df拼接concat

作者头像
zishendianxia
发布2020-11-25 12:15:51
1.5K0
发布2020-11-25 12:15:51
举报
文章被收录于专栏:Python工程师Python工程师

系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 pandas:0.19.2

  • 这个系列讲讲Python的科学计算及可视化
  • 今天讲讲pandas模块
  • 对不同df进行按行或者按列的拼接

Part 1:场景描述

  1. 已知3个df,对其按行进拼接,按进行拼接

3个df

按行方向拼接

按列方向拼接

Part 2:代码

代码语言:javascript
复制
import pandas as pd

# 显示所有列
pd.set_option('display.max_columns', None)
# 显示所有行
pd.set_option('display.max_rows', None)
# 设置value的显示长度为100
pd.set_option('max_colwidth', 100)
# 设置对齐
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
# 设置打印宽度
pd.set_option('display.width', 180)


dict_1 = {"pos": ["A", "A", "A", "A"],
          "value1": [10, 20, 30, 40],
          "value2": [100, 200, 300, 400],
          "value3": [30, 60, 20, 90]}

df_1 = pd.DataFrame(dict_1, columns=["pos", "value1", "value2", "value3"], index=[0, 1, 2, 3])
print("\n", "df_1", "\n", df_1, "\n")


dict_2 = {"pos": ["B", "B", "B", "B"],
          "value1": [50, 60, 70, 80],
          "value2": [500, 600, 700, 800],
          "value3": [50, 60, 80, 80]}

df_2 = pd.DataFrame(dict_2, columns=["pos", "value1", "value2", "value3"], index=[3, 5, 6, 7])
print("\n", "df_2", "\n", df_2, "\n")


dict_3 = {"pos": ["C", "C", "C", "C"],
          "value1": [20, 60, 80, 80],
          "value2": [500, 600, 700, 800],
          "value3": [50, 20, 80, 80]}

df_3 = pd.DataFrame(dict_3, columns=["pos", "value1", "value2", "value3"], index=[6, 7, 10, 11])
print("\n", "df_3", "\n", df_3, "\n")

# df = pd.concat([df_1, df_2, df_3])
# print("\n", "df = pd.concat([df_1, df_2, df_3])", "\n", df, "\n")

df = pd.concat([df_1, df_2, df_3], axis=1)
print("\n", "df = pd.concat([df_1, df_2, df_3], axis=1)", "\n", df, "\n")

代码截图

Part 3:部分代码解读

  1. pd.set_option('display.width', 180)
    • 当不进行一系列set_option进行设置的时候,打印出来时存在换行的问题
    • 包括如果若有中文字符,可能会出现不同行之间不对齐的问题
    • 大家可以参考本文中进行设置,根据实际情况,进行参数调整
  2. df = pd.concat([df_1, df_2, df_3]), 按行方向进行拼接
    • 列索引名相同时,写在同一列
    • 列索引名不同时,写在不同列,缺值部分用Nan表示
  3. df = pd.concat([df_1, df_2, df_3], axis=1),按列方向进行拼接
    • 行索引名相同时,写在同一行
    • 行索引名不同时,写在不同行,缺值部分用Nan表示

跨行显示问题

将df_1的value3列索引改为value4

本文为原创作品,欢迎分享朋友圈

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档