使用Pandas 函數建立多個新欄位
在Pandas 中,可以將單一函數套用於列並基於Pandas 函數建立多個新欄位
考慮以下場景:
您有一個函數extract_text_features,它接受一個文字列並傳回6 個輸出列。雖然函數本身可以工作,但將輸出分配給特定列會帶來挑戰。
使用Zip 的解:
一種有效的方法是使用zip 函數來分配將值輸出到多列:
<code class="python">def powers(x): return x, x**2, x**3, x**4, x**5, x**6 df = pd.DataFrame([[i] for i in range(10)], columns=['num']) df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = zip(*df['num'].map(powers))</code>
這裡,map() 函數將冪應用於「num」列的每一行,並且zip 將輸出解壓縮到各個列。
這方法根據函數的輸出值有效地產生多個新欄位。它也與舊版的 Pandas 相容,不像其他一些依賴 df.assign() 等新功能的解決方案。
以上是如何從 Pandas 中的單一函數輸出建立多個新列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!