在 Pandas Python 中按两列对值进行排序

巴兰东吉夫

这个想法是按两列对值进行排序。这样,给定两列,我期待输出类似

预期输出

      x     y
0   2.0   NaN
1   3.0   NaN
2   4.0   4.1
3   NaN   5.0
4  10.0   NaN
5  24.0  24.7
6  31.0  31.4

但是,使用下面的代码

import pandas as pd
import numpy as np
df1 = pd.DataFrame ( {'x': [2, 3, 4, 24, 31, '',10],
                      'y':['','',4.1,24.7,31.4,5,'']} )
df1.replace(r'^\s*$', np.nan, regex=True,inplace=True)
rslt_df = df1.sort_values ( by=['x', 'y'], ascending=(True, True) )

print(rslt_df)

产生以下

      x     y
0   2.0   NaN
1   3.0   NaN
2   4.0   4.1
6  10.0   NaN
3  24.0  24.7
4  31.0  31.4
5   NaN   5.0

请注意,在最后一行,5.0of 列y位于底部。

我可以知道为了获得预期的输出对代码进行了哪些修改吗?

心慌意乱

np.sortargsort

df1.iloc[np.sort(df1[['x','y']],axis=1)[:,0].argsort()]

      x     y
0   2.0   NaN
1   3.0   NaN
2   4.0   4.1
5   NaN   5.0
6  10.0   NaN
3  24.0  24.7
4  31.0  31.4

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何按两列或更多列对python pandas中的dataFrame进行排序?

使用Python中的Pandas,如何按agg函数创建的两列进行排序?

Python / Pandas-如何按两列分组并用第二列中第三列的值对行进行计数

Pandas(Python)-如何按两个日期列对熊猫数据框进行排序

Pandas Python groupby 多列 - 根据具有特定值的第一列按列 2 中的值对行进行排序

如何使用pandas在python中按字母对行值进行排序

如何按Python(pandas)列中的出现次数对数据框进行排序

如何在Pandas Python中按ID对行进行排序

Python Pandas:对列进行排序

使用python sort函数对Pandas DataFrame中的值进行排序

对两列进行排序,并使用pandas为数据帧中的排序值创建新列

Python Pandas列按计数排序

合并后的python pandas对列进行排序

Python Pandas自动对列进行排序

Python Pandas:按行中的值获取列

按两个值对python dict进行排序

如何在Pandas数据框中按行值对日期时间列进行排序?

Python Pandas:按另一列对数据透视表列进行排序

Python:按两列在dict中对制表符分隔的键进行排序

按Python中的值对字典中的值进行排序

按列中的名称对pandas DataFrame中的数据进行排序

Python Pandas 中两列值的复杂分析?

按列表对索引进行排序-Python Pandas

按值字典中的值对python进行排序

按特定顺序对Pandas DataFrame中的列进行排序

在 Pandas DataFrame 中按逗号数对列进行排序

按JSON中的值对python中的JSON文件进行排序

Python pandas 根据它们的值和其他行对多列进行排序

Python-对Pandas Dataframe进行两次排序