python - 这个 pandas dataframe.apply(lambda) 有什么问题?

标签 python pandas lambda dataframe

我不明白为什么这段代码不起作用。我正在用 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

最佳答案

我假设您的问题是:为什么您的代码没有执行您想要的操作?

.apply(lambda x: x.sort_values()) 确实可以满足您的要求。但是,此 lambda 的返回类型是 pd.Series 并且它有一个保留的索引。重新组合所有列时,pandas 确保索引对齐,从而删除您刚才所做的排序。为了打破这种行为,获取值(不带索引)

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

关于python - 这个 pandas dataframe.apply(lambda) 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37043199/

相关文章:

Java lambda 表达式 : How to concatenate key and set of values from a hashmap?

python - 导入错误 : cannot import name 'Timestamp'

python - SqlAlchemy Python 多数据库

python - 将列转换为标题行

lambda - 在方案中嵌套 Lambda?

Java FX 将函数作为参数发送到方法

python - 按组填充数据框中的所有变量

python - 按一组 Pandas 分组

python - 在 Pandas 中访问多索引数据帧时出现 KeyError

python - 在Python中按数据帧的列中的每个值进行分组