乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Pandas對DataFrame單列/多列進(jìn)行運算(map, apply, transform, agg)

       北方的白樺林 2019-02-10

      1.單列運算

      在Pandas中,DataFrame的一列就是一個Series, 可以通過map來對一列進(jìn)行操作:

      df['col2'] = df['col1'].map(lambda x: x**2)

      其中l(wèi)ambda函數(shù)中的x代表當(dāng)前元素。可以使用另外的函數(shù)來代替lambda函數(shù),例如:

      1. define square(x):
      2. return (x ** 2)
      3. df['col2'] = df['col1'].map(square)

      2.多列運算

      要對DataFrame的多個列同時進(jìn)行運算,可以使用apply,例如col3 = col1 + 2 * col2:

      df['col3'] = df.apply(lambda x: x['col1'] + 2 * x['col2'], axis=1)

      其中x帶表當(dāng)前行,可以通過下標(biāo)進(jìn)行索引。


      3.分組運算

      可以結(jié)合groupby與transform來方便地實現(xiàn)類似SQL中的聚合運算的操作:

      df['col3'] = df.groupby('col1')['col2'].transform(lambda x: (x.sum() - x) / x.count())

      在transform函數(shù)中x.sum()與x.count()與SQL類似,計算的是當(dāng)前group中的和與數(shù)量,還可以將transform的結(jié)果作為一個一個映射來使用, 例如:

      1. sumcount = df.groupby('col1')['col2'].transform(lambda x: x.sum() + x.count())
      2. df['col1'].map(sumcount)

      對col1進(jìn)行一個map,得到對應(yīng)的col2的運算值。


      4.聚合函數(shù)

      結(jié)合groupby與agg實現(xiàn)SQL中的分組聚合運算操作,需要使用相應(yīng)的聚合函數(shù):

      df['col2'] = df.groupby('col1').agg({'col1':{'col1_mean': mean, 'col1_sum‘’: sum}, 'col2': {'col2_count': count}})
      上述代碼生成了col1_mean, col1_sum與col2_count列。



        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多