我知道如何在數據框上使用apply函數來計算新列並將它們附加到數據框。我的問題是,如果我有一個函數,它將幾個值(對應於當前在數據框中的列)作爲參數並返回一個字典(對應於我想添加到數據框的列),是否有簡單/優雅的方式將此函數應用於數據框並生成新列?Python/pandas - 使用DataFrame.apply和函數返回字典
例如,目前我在做這個:
import pandas as pd
import numpy as np
col1 = [np.random.randn()] * 10
col2 = [np.random.randn()] * 10
col3 = [np.random.randn()] * 10
df = pd.DataFrame({'col1': col1,
'col2': col2,
'col3': col3 })
df['col4'] = df.apply(lambda x: get_col4(x['col1'], x['col2']), axis=1)
df['col5'] = df.apply(lambda x: get_col5(x['col1'], x['col2'], x['col3']),
axis=1)
df['col6'] = df.apply(lambda x: get_col6(x['col3'], x['col4'], x['col5']),
axis=1)
df['col7'] = df.apply(lambda x: get_col7(x['col4'], x['col6']), axis=1)
,我爲每個計算列單獨的功能,其中的每一個依賴於以前的專欄的某種組合。
不過,由於計算列的值是互相依賴的,我認爲這將是更有效和優雅的使用功能,像下面這樣一次全部計算新列:
def get_cols(col1, col2, col3):
#some calculations...
return {'col4': col4,
'col5': col5,
'col6': col6,
'col7': col7}
有沒有辦法使用熊貓來做到這一點?
你能給這個例子輸入和輸出嗎?即使只是一個有代表性的專欄,可能您並不需要您嘗試創建的所有專欄(?)。這看起來可能是一個不必要的緩慢運行的方式來解決你的問題。 – roganjosh