从 panda DataFrame 创建一个 pd.Series 列表
Posted
技术标签:
【中文标题】从 panda DataFrame 创建一个 pd.Series 列表【英文标题】:create a list of pd.Series from a panda DataFrame 【发布时间】:2019-07-02 12:30:28 【问题描述】:我有一个包含很多列的 DataFrame,以及我想传递给算法的列名列表。该算法要求我传入的参数不是数据框,而是一个列表,其中每个元素都是我的pd.Series
列之一。
我认为这个问题可能已经回答了,但我找不到...是否有实现这种转换的函数或方法 data.Frame => pd.Series 列表? p>
一些代码用两列显示我想要的输出,但我的用例如果有几十列,所以我不能手动编写它:
mydf = pd.DataFrame.from_dict('a': 0: 1, 1: 2, 'b': 0: 3, 1: 3, 'c': 0: 10, 1: 3)
my_list_of_columns=["a", "b"]
desired_output = [mydf.a, mydf.b]
感谢您的帮助
【问题讨论】:
【参考方案1】:使用列表理解:
desired_output = [mydf[x] for x in my_list_of_columns]
print (desired_output)
[0 1
1 2
Name: a, dtype: int64, 0 3
1 3
Name: b, dtype: int64]
或者用to_dict(orient='series')
转换成to_dict
,得到dict
的值,但是python under 3.6
中的顺序应该改变:
desired_output = list(mydf[my_list_of_columns].to_dict(orient='series').values())
【讨论】:
【参考方案2】:这样的?
import pandas as pd
mydf = pd.DataFrame.from_dict('a': 0: 1, 1: 2, 'b': 0: 3, 1: 3, 'c': 0: 10, 1: 3)
desired_output = []
l = list(mydf)
for i in l:
desired_output.append(list(eval('mydf.' + i)))
print(desired_output)
【讨论】:
以上是关于从 panda DataFrame 创建一个 pd.Series 列表的主要内容,如果未能解决你的问题,请参考以下文章
pandas使用pd.MultiIndex.from_product函数和pd.MultiIndex.from_tuples函数创建复合索引dataframe数据实战