色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 使用pandas同時(shí)對(duì)多列進(jìn)行賦值

瀏覽:2日期:2022-06-25 09:43:30
如dataframe

data1[’月份’]=int(month) #加入月份和企業(yè)名稱 data1[’企業(yè)’]=parmentname

可以增加單列,并賦值,如果想同時(shí)對(duì)多列進(jìn)行賦值

data1[’月份’,’企業(yè)’]=int(month) , parmentname #加入月份和企業(yè)名稱

會(huì)出錯(cuò)

ValueError: Length of values does not match length of index

data[[’合計(jì)’,’平均’]]=’數(shù)據(jù)’,’月份’

類似這樣的,也無效

KeyError: “None of [Index([‘合計(jì)’, ‘平均’], dtype=‘object’)] are in the [columns]”

只有下例中:

import pandas as pdchengji=[[100,95,100,99],[90,98,99,100],[88,95,98,88],[99,98,97,87],[96.5,90,96,85],[94,94,93,91],[91, 99, 92, 87], [85, 88, 85, 90], [90, 92, 99, 88], [90, 88, 89, 81], [85, 89, 89, 82], [95, 87, 86, 88], [90, 97, 97, 98], [80, 92, 89, 98], [80, 98, 85, 81], [98, 88, 95, 92]]data=pd.DataFrame(chengji,columns=[’語(yǔ)文’,’英語(yǔ)’,’數(shù)學(xué)’,’政治’])print (data)# data1=data[[’數(shù)學(xué)’,’語(yǔ)文’,’英語(yǔ)’,’政治’]] #排序# data1=data1.reset_index(drop=True) #序列重建# data1.index.names=[’序號(hào)’] #序列重命名# data1.index=data1.index+1 #序列從1開始# print (data1)data=pd.DataFrame(chengji,columns=[’語(yǔ)文’,’英語(yǔ)’,’數(shù)學(xué)’,’政治’],index=[i for i in range(1,len(chengji)+1)])print (data)data[[’合計(jì)’,’平均’]]=data.apply(lambda x: (x.sum(), x.sum()/4),axis=1,result_type=’expand’)print (data[:])data=pd.DataFrame(chengji,columns=[’語(yǔ)文’,’英語(yǔ)’,’數(shù)學(xué)’,’政治’],index=[i for i in range(1,len(chengji)+1)])print (data)data[[’合計(jì)’,’平均’]]=data.apply(lambda x:(’數(shù)據(jù)’,’月份’),axis=1,result_type=’expand’)print (data[:])

應(yīng)用apply 并設(shè)置result_type=‘expand’ 參數(shù)才可以。

先前的例子,用如下的方法就行了

data1[[’月份’,’企業(yè)’]]=data1.apply(lambda x:(int(month),parmentname),axis=1,result_type=’expand’) # data1[’月份’]=int(month) #加入月份和企業(yè)名稱 # data1[’企業(yè)’]=parmentname #print (data1)后記:

如果’月份’,’企業(yè)’列存在,用如下也可,上例中,直接可以創(chuàng)建不存在的列。

data1.lco[:,[’月份’,’企業(yè)’]]=int(month),parmentname

data1[[’月份’,’企業(yè)’]]=int(month),parmentname

今天又遇到一個(gè)從某列截取字符串長(zhǎng)度寫到另一列的,也一并寫到這里:

貨品列在原表中無,取貨品代碼的前12位。

totaldata = totaldata.reset_index(drop=False)totaldata[’貨品’] = totaldata[’貨品代碼’].apply(lambda x:x[:12])后記:2020.5.17又遇到想新增兩列并賦值的問題

import numpy as npimport pandas as pdfrom pandas import Series chengji = [[’N’, 95, 0], [’N’, 100, 88], [’N’, 88, 100], [’N’, 66, 0]]data = pd.DataFrame(chengji, columns=[’p’, ’x’, ’g’])data[[’序號(hào)’,’列名’]]=data[[’p’,’x’]] #pd.DataFrame(data[[’p’,’x’]])# .apply(lambda x : x )print(data)

補(bǔ)充:pandas 的apply返回多列,并賦值

代碼如下:

import pandas as pddf_tmp = pd.DataFrame([ {'a':'data1', 'cnt':100},{'a':'data2', 'cnt':200},])df_tmpa cntdata1 100data2 200方法一:使用apply 的參數(shù)result_type 來處理

def formatrow(row): a = row['a'] + str(row['cnt']) b = str(row['cnt']) + row['a'] return a, b df_tmp[['fomat1', 'format2']] = df_tmp.apply(formatrow, axis=1, result_type='expand')df_tmpa cnt fomat1 format2data1 100 data1100 100data1data2 200 data2200 200data2方法二:使用zip打包返回結(jié)果來處理

df_tmp['fomat1-1'], df_tmp['format2-2'] = zip(*df_tmp.apply(formatrow, axis=1))df_tmpa cnt fomat1 format2 fomat1-1 format2-2data1 100 data1100 100data1 data1100 100data1data2 200 data2200 200data2 data2200 200data2

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日本三级香港三级少妇 | 欧美日韩中文字幕在线视频 | 国产手机精品视频 | 欧美日韩一区二区综合 | 久久久成人影院 | 步兵一区二区三区在线观看 | 国产爽的冒白浆的视频高清 | 国产精品黄网站免费观看 | 国产欧美亚洲三区久在线观看 | 亚洲欧美在线综合一区二区三区 | 国产精品福利午夜h视频 | 国产成人久视频免费 | 久草在线视频免费资源观看 | 一级黄一片 | 看看免费a一片欧 | 久久国产成人福利播放 | 99精品免费视频 | 欧美日韩视频在线第一区 | 亚洲品质自拍视频网站 | 欧美一区二区三区在线视频 | 女人扒开腿让男人捅啪啪 | 久久久久久久久性潮 | 大视频在线爱爱爱爱 | 日韩精品一区二区三区乱码 | 国产韩国精品一区二区三区久久 | 成人国产视频在线观看 | 欧美成人免费在线观看 | 免费成年网 | 91在线免费观看网站 | 美女视频黄a全部 | 亚洲成a v人片在线观看 | 亚洲精品视频区 | 国产中文字幕在线免费观看 | 成年人免费观看视频网站 | 国产成人盗摄精品 | 成年男女免费视频网站 | 亚洲精美视频 | 日本免费一区二区三区三州 | 中文字幕成人免费高清在线 | 香蕉成人国产精品免费看网站 | 美女黄网站人色视频免费国产 |