日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pd.concat数据拼接

發(fā)布時(shí)間:2024/1/18 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pd.concat数据拼接 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

從本文你將學(xué)到如何利用pandas模塊下的concat函數(shù)進(jìn)行數(shù)據(jù)拼接。

pd.concat

  • 背景
  • 完整代碼
  • 結(jié)果預(yù)覽
  • 代碼解讀
  • 參考文獻(xiàn)

背景

現(xiàn)在我有136price202006temp, 136price202007temp, 136price202008temp, 136price202009temp, 136price2020010temp, 136price2020011temp六份數(shù)據(jù),我想要將其上下拼接起來(lái)形成一張總表,各表名和表頭如下表所示

表名表頭
136price202006tempnewdiskid, plate, newdiskname, lon, lat, ras202005, p0, label
136price202007tempnewdiskid, plate, newdiskname, lon, lat, price202006, p0, label
136price202008tempnewdiskid, plate, newdiskname, lon, lat, price202007, p0, label
136price202009tempnewdiskid, plate, newdiskname, lon, lat, price202008, p0, label
136price2020010tempnewdiskid, plate, newdiskname, lon, lat, price202009, p0, label
136price2020011tempnewdiskid, plate, newdiskname, lon, lat, price2020010, p0, label

從表中可以看到每個(gè)表一共有8個(gè)字段,其中7個(gè)相同,1個(gè)不同,具體要求如下

  • 關(guān)鍵是把p0拼接,表示各個(gè)月份算出來(lái)的價(jià)格,希望把下面7個(gè)字段對(duì)齊;
表名字段
dfnewdiskid, plate, newdiskname, lon, lat, p0,label
  • 每個(gè)表增加表示時(shí)間的字段pricedate
  • 增加表示計(jì)算人的字段computman;
  • 將所有l(wèi)abel為1或者2的改成0,label為0的改成1;

完整代碼

# -*- coding: utf-8 -*- """ Project_name:join Description: Created on Tue Nov 10 14:44:44 2020 @author: 帥帥de三叔 """import pandas as pd #導(dǎo)入數(shù)據(jù)分析模塊 import pymysql #導(dǎo)入連接MySQL模塊data202006 = pd.read_excel("136price202006temp.xlsx") #讀取數(shù)據(jù) data202006["pricedate"]= ["2020-06-01"]*len(data202006) #增加一個(gè)pricedate的字段data202007 = pd.read_excel("136price202007temp.xlsx") data202007["pricedate"]= ["2020-07-01"]*len(data202007)data202008 = pd.read_excel("136price202008temp.xlsx") data202008["pricedate"]= ["2020-08-01"]*len(data202008)data202009 = pd.read_excel("136price202009temp.xlsx") data202009["pricedate"]= ["2020-09-01"]*len(data202009)data2020010 = pd.read_excel("136price2020010temp.xlsx") data2020010["pricedate"]= ["2020-10-01"]*len(data2020010)data2020011 = pd.read_excel("136price2020011temp.xlsx") data2020011["pricedate"]= ["2020-11-01"]*len(data2020011)df = pd.concat([data202006, data202007, data202008, data202009, data2020010, data2020011],join = "inner", axis = 0, ignore_index=True)[["newdiskid", "newdiskname", "pricedate","p0", "label"]] df["computman"] = ["zbw"]*len(df) #新增computman字段 df["remark"] = [""]*len(df) #新增remark字段 df["label"] = [2 if i == 1 or i == 2 else 0 for i in df["label"]] #推導(dǎo)式語(yǔ)句,如果為1或2則統(tǒng)一標(biāo)2,其余標(biāo)0 df["label"] = [0 if i == 2 else 1 for i in df["label"]] #接上一句,如果為2賦值為0,反之為1 df.columns = ["newdiskid", "newdiskname", "pricedate", "price", "casetype", "computman", "remark"] #重新給表頭 df = df[["newdiskid", "newdiskname","pricedate", "price", "computman", "casetype", "remark"]] #調(diào)整一下表頭順序 df.to_excel("136各樓盤各月份基價(jià).xlsx") #保存本地文件夾下

結(jié)果預(yù)覽

代碼解讀

主要用到panda.concat()函數(shù),其基本調(diào)用方式如下

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)

參數(shù)解釋

  • objs

需要連接的對(duì)象,如series,dataframe或者是panel構(gòu)成的序列l(wèi)ist ,常用是兩個(gè)數(shù)據(jù)框 [df1, df2],我這里給了6個(gè)數(shù)據(jù)框;

df = pd.concat([data202006, data202007, data202008, data202009, data2020010, data2020011]) #拼接6個(gè)數(shù)據(jù)框
  • axis

表示拼接的方向,axis = 0, 表示在按行拼接,即上下方向; axis = 1, 表示按列方向拼接,即左右方向;

df = pd.concat([data202006, data202007, data202008, data202009, data2020010, data2020011], axis = 0) #按行拼接
  • join

表示連接方式,outer, 表示并集,即全部需要; inner,表示交集,只取重合的部分;

df = pd.concat([data202006, data202007, data202008, data202009, data2020010, data2020011],join = "inner", axis = 0#取交集

注: 取交集后ras202005,price202006,price202007, price202008, price202009, price2020010, price2020011這幾個(gè)字段就會(huì)被干掉;

  • join_axes

傳入需要保留的index

  • ignore_index

忽略需要連接的數(shù)據(jù)框本身的index,當(dāng)原本的index沒有特別意義的時(shí)候可以使用,尤其這些數(shù)據(jù)框的index不完全一致的時(shí)候特別有用;

df = pd.concat([data202006, data202007, data202008, data202009, data2020010, data2020011],join = "inner", axis = 0, ignore_index=True) #選擇忽略
  • key

keys參數(shù)可以用來(lái)標(biāo)注合并后的表數(shù)據(jù)來(lái)源,比如我這里可以給6個(gè)key值

df = pd.concat([data202006, data202007, data202008, data202009, data2020010, data2020011],join = "inner", axis = 0, ignore_index=True, keys=['06', ',07', '08''09', ',010', '011']) #標(biāo)注數(shù)據(jù)來(lái)源
  • levels

序列列表,用于構(gòu)建MultiIndex的特定級(jí)別(唯一值),否則,它們將從index推斷。

  • copy

bool值,表示要不要復(fù)制數(shù)據(jù),默認(rèn)為True,如果為False,則不要復(fù)制數(shù)據(jù)。

后面2個(gè)參數(shù)用的比較少

參考文獻(xiàn)

1,https://jingyan.baidu.com/article/91f5db1b79205a1c7f05e3ae.html
2,https://www.jianshu.com/p/421f040dfe2f

總結(jié)

以上是生活随笔為你收集整理的pd.concat数据拼接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www日本色 | 国产免费激情 | 林天顾悦瑶笔趣阁 | av视觉盛宴 | 国产黄色av片 | 国产一级久久久 | 毛片在线视频 | 国产精品一区二区三区在线播放 | 色视频一区| 日日射日日操 | 日韩影院一区 | 白丝一区| 韩国美女视频在线观看18 | 免费吸乳羞羞网站视频 | 久久99精品国产麻豆婷婷洗澡 | 91一区二区在线 | 国产精品毛片一区二区在线看 | 免费的毛片| 99天堂网| 好看的毛片 | 六十路息与子猛烈交尾 | 久久bb | 亚洲αv| 狠狠操免费视频 | 伊人久久免费视频 | 免费大黄网站 | 一级黄大片| 国产高清在线观看视频 | 国产成人在线观看 | 亚洲欧美精品一区 | 欧美黄色性 | 欧美日韩一区二区三区国产精品成人 | 激情久久视频 | 人操人爽 | 欧美小视频在线观看 | 日韩精品中文字幕一区二区 | 99精品视频在线看 | 三八激情网| 亚洲国产欧美日韩在线 | 亚洲爽片 | 99九九视频| 草比网站 | 粉嫩av网址| 在线中出 | 亚洲精品一二三四区 | 91九色论坛| 国产精品第 | 69堂精品 | 少妇久久久久久被弄到高潮 | 午夜动态图 | 99久久久精品免费观看国产 | 久久9精品区-无套内射无码 | 夜色在线影院 | 亚洲av综合一区二区 | 午夜视频大全 | 午夜极品视频 | 永久免费在线 | aaaa一级片 | 婷婷激情综合 | 国产男女网站 | japanese国产在线观看 | 黄色av资源| 91新视频| 婷婷超碰 | 国产一级特黄aaa大片 | 亚洲成av人片一区二区梦乃 | 婷婷六月网| 国产婷婷色一区二区 | 最新理伦片eeuss影院 | 亚洲av无码一区二区三区在线 | 天堂久久精品忘忧草 | 久久国产毛片 | 福利一区二区 | av在线不卡免费看 | 在线视频第一页 | 免费在线视频观看 | 色欲av永久无码精品无码蜜桃 | 免费高清欧美大片在线观看 | 久久爱一区二区 | 狠狠a| 91网址在线观看 | 91婷婷色 | 久久国产精品久久久久久 | 亚洲久久视频 | 美女黄视频大全 | 台湾佬成人中文网222vvv | 国产精品丝袜黑色高跟鞋 | 暖暖日本在线 | 少妇一边呻吟一边说使劲视频 | 亚欧综合在线 | 欧美黄色a级大片 | 熟妇人妻久久中文字幕 | 女人脱下裤子让男人捅 | 亚洲第一字幕 | 得得的爱在线视频 | 国产香蕉一区二区三区 | 美女成人在线 | 中文字幕avav | 老司机激情视频 |