欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年03月12日 17:35:26   作者:weixin_45903952  
這篇文章主要介紹了python 使用pandas同時(shí)對(duì)多列進(jìn)行賦值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

如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ù)','月份'

類似這樣的,也無(wú)效

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

只有下例中:

import pandas as pd
chengji=[[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開(kāi)始
# 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)度寫(xiě)到另一列的,也一并寫(xiě)到這里:

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

totaldata = totaldata.reset_index(drop=False)
totaldata['貨品'] = totaldata['貨品代碼'].apply(lambda x:x[:12])

后記:2020.5.17又遇到想新增兩列并賦值的問(wèn)題

import numpy as np
import pandas as pd
from 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 pd
df_tmp = pd.DataFrame([
 {"a":"data1", "cnt":100},{"a":"data2", "cnt":200},
])
df_tmp
a cnt
data1 100
data2 200

方法一:使用apply 的參數(shù)result_type 來(lái)處理

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_tmp
a cnt fomat1 format2
data1 100 data1100 100data1
data2 200 data2200 200data2

方法二:使用zip打包返回結(jié)果來(lái)處理

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

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

相關(guān)文章

  • Python中pygame游戲模塊的用法詳解

    Python中pygame游戲模塊的用法詳解

    Pygame是一組用來(lái)開(kāi)發(fā)游戲軟件的 Python 程序模塊,Pygame 在 SDL(Simple DirectMedia Layer) 的基礎(chǔ)上開(kāi)發(fā)而成,它提供了諸多操作模塊,本文給大家介紹了Python中pygame游戲模塊的用法,需要的朋友可以參考下
    2024-01-01
  • Python-jenkins模塊之folder相關(guān)操作介紹

    Python-jenkins模塊之folder相關(guān)操作介紹

    這篇文章主要介紹了Python-jenkins模塊之folder相關(guān)操作介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python中使用matplotlib繪制各類圖表示例詳解

    Python中使用matplotlib繪制各類圖表示例詳解

    這篇文章主要給大家介紹了關(guān)于Python中使用matplotlib繪制各類圖表的相關(guān)資料,matplotlib是python的一個(gè)庫(kù),內(nèi)部?jī)?chǔ)存了大量的函數(shù)用于繪制圖像,通常會(huì)與pandas和numpy庫(kù)一起使用,平常我們通常只是用里面的pyplot模塊,需要的朋友可以參考下
    2023-10-10
  • Python實(shí)現(xiàn)自動(dòng)批量修改文件名稱

    Python實(shí)現(xiàn)自動(dòng)批量修改文件名稱

    這篇文章主要為大家詳細(xì)介紹了如何基于Python語(yǔ)言,實(shí)現(xiàn)按照一定命名規(guī)則批量修改多個(gè)文件的文件名的效果,文中的示例代講解詳細(xì),感興趣的可以了解一下
    2023-01-01
  • 詳解Django中的權(quán)限和組以及消息

    詳解Django中的權(quán)限和組以及消息

    這篇文章主要介紹了詳解Django中的權(quán)限和組以及消息,在Python百花齊放的web框架中,Django是人氣最高的一個(gè),需要的朋友可以參考下
    2015-07-07
  • Python float函數(shù)實(shí)例用法

    Python float函數(shù)實(shí)例用法

    在本篇文章里小編給大家整理的了一篇關(guān)于Python float函數(shù)實(shí)例用法,有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • Python開(kāi)發(fā)中爬蟲(chóng)使用代理proxy抓取網(wǎng)頁(yè)的方法示例

    Python開(kāi)發(fā)中爬蟲(chóng)使用代理proxy抓取網(wǎng)頁(yè)的方法示例

    這篇文章主要介紹了Python開(kāi)發(fā)中爬蟲(chóng)使用代理proxy抓取網(wǎng)頁(yè)的方法,結(jié)合具體實(shí)例形式分析了urllib模塊代理與requests模塊代理兩種實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • Python splitlines使用技巧

    Python splitlines使用技巧

    Python中的splitlines用來(lái)分割行。當(dāng)傳入的參數(shù)為True時(shí),表示保留換行符 \n。通過(guò)下面的例子就很明白了
    2008-09-09
  • Python中使用PyHook監(jiān)聽(tīng)鼠標(biāo)和鍵盤(pán)事件實(shí)例

    Python中使用PyHook監(jiān)聽(tīng)鼠標(biāo)和鍵盤(pán)事件實(shí)例

    這篇文章主要介紹了Python中使用PyHook監(jiān)聽(tīng)鼠標(biāo)和鍵盤(pán)事件實(shí)例,這個(gè)庫(kù)依賴于另一個(gè)Python庫(kù)PyWin32,并且只能運(yùn)行在Windows平臺(tái),需要的朋友可以參考下
    2014-07-07
  • Python利用內(nèi)置庫(kù)實(shí)現(xiàn)數(shù)據(jù)的加密與校驗(yàn)

    Python利用內(nèi)置庫(kù)實(shí)現(xiàn)數(shù)據(jù)的加密與校驗(yàn)

    這篇文章主要為大家詳細(xì)介紹了如何使用Python內(nèi)置庫(kù)實(shí)現(xiàn)數(shù)據(jù)的加密和校驗(yàn),為開(kāi)發(fā)者提供全方位的數(shù)據(jù)安全解決方案,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12

最新評(píng)論