[英]How to create a pandas DataFrame from its indexes and a two variable function?
這是我一直在使用的常見模式:
rows = ['Joe','Amy','Tom']
columns = ['account_no', 'balance']
def f(row, column):
'''Fetches value from database'''
return np.random.random()
pd.DataFrame([[f(row, column) for column in columns] for row in rows], index=rows, columns=columns)
如果行和列是數字,我也可以使用 np.meshgrid:
rows = [1,2,3]
columns = [4,5]
pd.DataFrame(np.vectorize(f)(xs, ys), index=rows, columns=columns)
我的問題是,在一般情況下,最優雅/Pythonic/“pandasic”/最快/最易讀的方法是什么?
謝謝!
這樣做的一種方法可能是將您的函數轉換為 ufunc,然后使用外部
import numpy as np
uf = np.frompyfunc(f, 2, 1) # f has 2 inputs, 1 outputs
pd.DataFrame(uf.outer(rows, columns), index=rows, columns=columns)
您上面的一個標准是“最具可讀性”,我認為您現有的 for 循環解決方案是最好的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.