簡體   English   中英

從幾個列表創建一個熊貓數據框

[英]create a pandas data frame from several lists

我的函數輸出一個列表,例如當我鍵入時:

My_function('TV', 'TV_Screen')

它輸出以下內容:

['TV', 1, 'TV_Screen', 0.04, 'True']

現在,我的電視由揚聲器,變壓器等幾個部分組成,我可以繼續為每個部分運行我的功能,例如將“ TV_Screen”更改為“ TV_Speaker”或“ TV_transformer”等。

另一種方法是創建一個包含所有部分的列表,例如:

TV_parts = ['TV_Screen', 'TV_Speaker', 'TV_transformer']

我想要得到的是一個具有5列的熊貓數據框(因為我的函數輸出5個變量,請參見上面的“輸出以下內容:”部分),在這種情況下為3行(“ TV_Screen”,“ TV_Speaker”和“ TV_transformer”)。 基本上,我希望以下內容位於數據框中:

['TV', 1, 'TV_Screen', 0.04, 'True']
['TV', 9, 'TV_Speaker', 0.56, 'True']
['TV', 3, 'TV_transformer', 0.80, 'False']

我知道我需要在某個地方進行for循環,但是我不確定如何創建此數據幀。 能否請你幫忙? (我可以將函數的輸出更改為pd.Series或其他效果更好的東西)。

謝謝!

您可以這樣做:

def My_function(part):
    # prepare result
    result = ['TV', 1, part, 0.04, 'True'] # for testing 
    return result

TV_parts = ['TV_Screen', 'TV_Speaker', 'TV_transformer']
df = pd.DataFrame([My_function(part) for part in TV_parts])

>>> df

    0  1               2     3     4
0  TV  1       TV_Screen  0.04  True
1  TV  1      TV_Speaker  0.04  True
2  TV  1  TV_transformer  0.04  True

如果您有許多數組,可能首先需要將它們轉換為numpy矩陣,然后再將其轉換為數據框。

import pandas as pd
import numpy as np

a = ['TV', 1, 'TV_Screen', 0.04, 'True']
b = ['TV', 9, 'TV_Speaker', 0.56, 'True']
c = ['TV', 3, 'TV_transformer', 0.80, 'False']

matrix = np.matrix([a,b,c])

df = pd.DataFrame(data=matrix)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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