python - 如何在python中对具有特殊日期结构的DataFrame进行排序?

标签 python python-3.x pandas sorting dataframe

我有一个Python DataFrame,单元格值是购买数量,例如:

 code   1/18     2/18      3/18     4/18     5/18 
 1      NaN      15        15       16       14
 2      NaN      NaN       30       23       24 
 3      24       21        23       NaN      26

我想根据首次购买的日期来订购代码,结果将是:

code   1/18     2/18      3/18     4/18     5/18   
3      24       21        23       NaN      26
1      NaN      15        15       16       14
2      NaN      NaN       30       23       24 

请帮忙!

最佳答案

我认为需要指定按索引排序的列 - 这里是所有列,没有第一个:

print (df.columns[1:].tolist())
['1/18', '2/18', '3/18', '4/18', '5/18']

df = df.sort_values(by=df.columns[1:].tolist())
print (df)
   code  1/18  2/18  3/18  4/18  5/18
2     3  24.0  21.0    23   NaN    26
0     1   NaN  15.0    15  16.0    14
1     2   NaN   NaN    30  23.0    24

如果第一列是索引:

print (df.columns.tolist())
['1/18', '2/18', '3/18', '4/18', '5/18']

df = df.sort_values(by=df.columns.tolist())
print (df)
      1/18  2/18  3/18  4/18  5/18
code                              
3     24.0  21.0    23   NaN    26
1      NaN  15.0    15  16.0    14
2      NaN   NaN    30  23.0    24

关于python - 如何在python中对具有特殊日期结构的DataFrame进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51842011/

相关文章:

python - 如何保留pandas中所有变量的类别?

python - 对所有列中缺失日期和前向填充值的行重新采样,但一列除外

python - 如何使用 python 下载 nasa 卫星 OPeNDAP 数据

python - 操作系统错误 : [WinError 740] The requested operation requires elevation

Python程序读取Excel工作表不起作用?

python-3.x - Aruco OpenCV 示例,所有标记均被拒绝

python - urllib.request.urlopen:SSL:Windows> = Vista(7/8/10/Server 2008)在Windows> = 3.4上的Windows上的SSL:CERTIFICATE_VERIFY_FAILED错误

python - 模块 'scipy.optimize' 没有属性 'anneal'

python - 按 multiIndex 之一的最高分位数过滤数据帧行

python - 如何在 Python 中获得 timedelta 的总和?