我有一个包含很多列的 DataFrame,以及我想要传递给算法的列名称列表。该算法要求我传入的参数不是数据帧,而是一个列表,其中每个元素都是我的 pd.Series
列之一。
我认为这个问题可能已经得到解答,但我找不到...是否有函数或方法来实现此转换data.Frame => pd.Series 列表?
一些代码显示我想要的两列输出,但我的用例如果有几十列,所以我无法手动编写:
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]
感谢您的帮助
最佳答案
使用列表理解:
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
使用 to_dict(orient='series')
并获取 dict
的值,但在 3.6 下的 python
中应更改排序:
desired_output = list(mydf[my_list_of_columns].to_dict(orient='series').values())
关于python - 从 panda DataFrame 创建 pd.Series 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54589455/