第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將列表的兩個 pandas 列彼此分開

將列表的兩個 pandas 列彼此分開

墨色風(fēng)雨 2023-06-20 16:08:42
我有一個這樣的 df:col1        col2[1,3,4,5]   [3,3,6,2][1,4,5,5]   [3,8,4,3][1,3,4,8]   [8,3,7,2]嘗試將 col1 和 col2 中的列表中的元素劃分在一起以獲得結(jié)果列中的內(nèi)容:col1        col2        result[1,3,4,5]   [3,3,6,2]   [.33,1,.66,2.5][1,4,5,5]   [3,8,4,3]   [.33,.5,1.25,1.66][1,3,4,8]   [8,3,7,2]   [.33,1,.57,4]嘗試了很多不同的方法 - 但總是出錯。嘗試:#attempt1df['col1'].div(df['col2'], axis=0)#attempt2from operator import truedivfor i in df.col1:     a = np.array(df['col1'])     for t in df.col2:         b = np.array(df['col2'])         x = a/b         print(x)#attempt3for i in df.index:    a = col1    b = col2    x = map(truediv, a, b)#attempt4a = col1b = col2result = [x/y for x, y in zip(a, b)]#then apply to df#attempt5a = col1b = col2result = a/bprint(percent_matched)#then #apply to df>>>TypeError: unsupported operand type(s) for /: 'list' and 'list'有任何想法嗎?
查看完整描述

4 回答

?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗 獲得超2個贊

  • 用于.applymap將列轉(zhuǎn)換為np.arrays

  • 然后用來.div分列

  • 如果必須四舍五入,則在計算該列時?result附加, 。.apply(lambda x: np.round(x, 3))

    • np.round()

    • df['result'] = df.col1.div(df.col2).apply(lambda x: np.round(x, 3))

import numpy as np

import pandas as pd


data = {'col1': [[1,3,4,5], [1,4,5,5], [1,3,4,8]], 'col2': [[3,3,6,2], [3,8,4,3], [8,3,7,2]]}


df = pd.DataFrame(data)


# convert columns to arrays

df = df.applymap(np.array)


# divide the columns

df['result'] = df.col1.div(df.col2)


查看完整回答
反對 回復(fù) 2023-06-20
?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗 獲得超13個贊

您可以將列表理解與應(yīng)用一起使用,這是以兩個列表的長度相同為條件的


df['result'] = df.apply(lambda x: [np.round(x['col1'][i]/x['col2'][i], 2) for i in range(len(x['col1']))], axis = 1)


    col1            col2            result

0   [1, 3, 4, 5]    [3, 3, 6, 2]    [0.33, 1.0, 0.67, 2.5]

1   [1, 4, 5, 5]    [3, 8, 4, 3]    [0.33, 0.5, 1.25, 1.67]

2   [1, 3, 4, 8]    [8, 3, 7, 2]    [0.12, 1.0, 0.57, 4.0]

編輯:正如@TrentonMcKinney 所建議的,這可以在不使用 LC 的情況下完成。該解決方案利用了 Numpy 的矢量化操作,


df.apply(lambda x: np.round(np.array(x[0]) / np.array(x[1]), 3), axis=1)


查看完整回答
反對 回復(fù) 2023-06-20
?
開滿天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗 獲得超13個贊

df=df.apply(pd.Series.explode)#

df['result']=(df.col1.div(df.col2))

df.groupby(level=0)['result'].agg(list).reset_index()


查看完整回答
反對 回復(fù) 2023-06-20
?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗 獲得超6個贊

如果這些很大,你最好將它們轉(zhuǎn)換為 np.arrays 然后進(jìn)行除法:


df["col1"] = df["col1"].apply(np.array)

df["col2"] = df["col2"].apply(np.array)


df["output"] = df.col1/df.col2


查看完整回答
反對 回復(fù) 2023-06-20
  • 4 回答
  • 0 關(guān)注
  • 246 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號