【发布时间】:2015-03-28 03:05:33
【问题描述】:
我的函数输出一个列表,例如当我键入时:
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 列的 pandas 数据框(因为我的函数输出 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 或其他效果更好的东西)。
谢谢!
【问题讨论】:
-
您应该能够将每个列表设为
pandas.Series,然后将它们连接在一起。出于某种原因,在pandas.concat中使用axis=0 并没有达到我的预期。但是如果你有一个系列列表a;那么pandas.concat(a, axis=1).tranpose()应该做你想做的事。
标签: python for-loop pandas dataframe data-manipulation