我正在嘗試爲熱圖或3D繪圖準備一些數據。總的想法是我有一些函數z = f(x,y),其中z是特定單元格的值,其中x爲列值,y爲索引值。Pandas DataFrame:將索引和列值作爲參數以cell-wise方式應用
我目前的做法是遍歷其已經具備了所需的結果數據框:
import numpy as np
import pandas as pd
def my_fun(a, b):
return(a**2 + b**3)
index = [i for i in np.arange(25.0, 100.0, 25.0)]
columns = [i for i in np.arange(150.0, 600.0, 150.0)]
df = pd.DataFrame(np.zeros((3, 3)), index=index, columns=columns)
for idx in index:
for col in columns:
df.loc[idx, col] = my_fun(idx, col)
print(df)
和產量:
150.0 300.0 450.0
25.0 3375625.0 27000625.0 91125625.0
50.0 3377500.0 27002500.0 91127500.0
75.0 3380625.0 27005625.0 91130625.0
但遍歷數據幀可能是不正確的(矢量)處理這個問題的方法,我正在尋找一些漂亮的組合apply/applymap/map。
有什麼辦法以更聰明/矢量化的方式獲得相同的結果?
提前致謝!
工程就像一個魅力!謝謝。我完全錯過了,我可以使用單元格的.name和.index屬性! –
謝謝。如果你覺得它有用,你也可以提出這個問題,因爲我沒有在我的搜索中找到任何答案 –
還有一個問題:是否也可以將其他參數與默認參數傳遞給f(),如f (x,y = 0.5,z = 4)? –