簡體   English   中英

如何從它的索引和兩個變量函數創建一個 Pandas DataFrame?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM