我的函数输出一个列表,例如当我输入:
时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个变量,参见上面的#34部分;它输出以下内容:"),在这种情况下是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或其他可以更好地工作的东西。)
谢谢!
答案 0 :(得分:1)
你可以这样做:
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
答案 1 :(得分:0)
如果您有许多数组,可能需要先将它们转换为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)