为了账号安全,请及时绑定邮箱和手机立即绑定

从熊猫数据帧创建 pd.Series 列表

从熊猫数据帧创建 pd.Series 列表

翻过高山走不出你 2021-11-02 16:38:21
我有一个包含很多列的 DataFrame,以及我想传递给算法的列名列表。该算法要求我传入的参数不是数据帧,而是一个列表,其中每个元素都是我的pd.Series列之一。我认为这个问题可能已经得到回答,但我找不到......如果有一个函数或方法来实现这个转换data.Frame => pd.Series 列表?一些代码用 2 列显示我想要的输出,但我的用例如果有几十列,所以我不能手动编写它: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]谢谢您的帮助
查看完整描述

2 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

使用列表理解:


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_dictwithto_dict(orient='series')并获取 的值dict,但顺序应更改为python under 3.6:


desired_output = list(mydf[my_list_of_columns].to_dict(orient='series').values())


查看完整回答
反对 回复 2021-11-02
?
翻阅古今

TA贡献1780条经验 获得超5个赞

像这样的东西?


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)


查看完整回答
反对 回复 2021-11-02
  • 2 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号