【问题标题】:What is wrong with this pandas dataframe.apply(lambda)?这个 pandas dataframe.apply(lambda) 有什么问题?
【发布时间】:2016-05-05 05:38:43
【问题描述】:

我不明白为什么这段代码不起作用。我正在用 lambda 练习 df.apply。我希望输出是一个排序的df。谢谢。

import pandas as pd
import numpy as np

data = np.random.randn(10,5)
col = list('ABCDE') # assign column names

我想创建一个新的数据框 t,它是一个排序的 df

df = pd.DataFrame(data, columns = col)    
t = df.apply(lambda x: x.sort_values()) 

>>> df    
          A         B         C         D         E
0  1.548097  0.682373 -1.254562 -0.249815  0.002013
1 -2.581173  0.946034 -1.389210 -0.877128 -1.569914
2 -0.980636  1.555700 -1.346029  0.180983  1.112470
3  0.724657  0.520718  0.122696  1.386643  0.060714
4 -0.119740 -0.665260 -1.085457  0.699085  1.149364
5 -0.004628 -0.479672 -0.641696  0.875471  0.826836
6  0.598497 -0.018560 -1.002511  0.478659  0.463565
7 -0.005159 -0.137165 -0.460209  0.284940  0.755981
8  0.576421  0.098833 -2.664028  0.118074 -0.426393
9 -0.223696 -0.589748 -0.733454 -0.254564 -0.519015

>>> t  
          A         B         C         D         E
0  1.548097  0.682373 -1.254562 -0.249815  0.002013
1 -2.581173  0.946034 -1.389210 -0.877128 -1.569914
2 -0.980636  1.555700 -1.346029  0.180983  1.112470
3  0.724657  0.520718  0.122696  1.386643  0.060714
4 -0.119740 -0.665260 -1.085457  0.699085  1.149364
5 -0.004628 -0.479672 -0.641696  0.875471  0.826836
6  0.598497 -0.018560 -1.002511  0.478659  0.463565
7 -0.005159 -0.137165 -0.460209  0.284940  0.755981
8  0.576421  0.098833 -2.664028  0.118074 -0.426393
9 -0.223696 -0.589748 -0.733454 -0.254564 -0.519015

【问题讨论】:

    标签: python pandas lambda dataframe


    【解决方案1】:

    我假设您的问题是:为什么您的代码没有按照您的意愿执行?

    .apply(lambda x: x.sort_values()) 会做你想做的事。但是,此 lambda 的返回类型是 pd.Series,并且它有一个保留的索引。重新组合所有列时,pandas 会确保索引排列整齐,从而删除您刚刚进行的排序。为了打破这种行为,获取值(没有索引)

    df.apply(lambda x: x.sort_values().values)
    

    【讨论】:

    • 您的解决方案是正确的。非常感谢您澄清这一点。
    猜你喜欢
    • 2022-11-01
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    相关资源
    最近更新 更多