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