Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pandas使用数字和字母组合按系列对数据帧进行排序_Python_Pandas - Fatal编程技术网

Python pandas使用数字和字母组合按系列对数据帧进行排序

Python pandas使用数字和字母组合按系列对数据帧进行排序,python,pandas,Python,Pandas,我需要按一列对数据帧进行排序,其中包括数字和字母的组合 df = [{"user": "seth", "name": "1"}, {"user" : "chris", "name": "10A"}, {"user" : "aaron", "name": "4B"}, {"user" : "dan", "name": "10B"}] 我的代码: df1 = df.sort_values(by=['name'])

我需要按一列对数据帧进行排序,其中包括数字和字母的组合

df = [{"user": "seth",
       "name": "1"},
     {"user" : "chris",
       "name": "10A"},
     {"user" : "aaron",
       "name": "4B"},
     {"user" : "dan",
       "name": "10B"}]
我的代码:

df1 = df.sort_values(by=['name'])
这让我明白:

df1 = [{"user": "seth",
       "name": "1"},
     {"user" : "chris",
       "name": "10A"},
     {"user" : "dan",
       "name": "10B"},
     {"user" : "aaron",
       "name": "4B"}]
我想:

df1 =    [{"user": "seth",
           "name": "1"},
         {"user" : "aaron",
           "name": "4B"},
         {"user" : "chris",
           "name": "10A"},
         {"user" : "dan",
           "name": "10B"}]
编辑:

这被标记为一个类似的问题,他们的代码是:

   DPRexitPoints.reindex(index=natsorted(DPRexitPoints.PageName))

它返回一个已排序的数据帧,但所有值都已被NaN替换。

您可以执行
np.argsort
iloc

df.iloc[np.argsort(df['name'].str
                      .extract('^(\d*)')[0]
                      .astype(int))
       ]
输出:

    user name
0   seth    1
2  aaron   4B
1  chris  10A
3    dan  10B

这是dict还是pandas数据框或列表?@YOBEN_S这是pandas数据框hmmm,它只按数字排序,不按数字和字母的组合排序。可能的解决方案应该是同时提取和使用排序或使用
自然排序
它会给我以下错误:ValueError:invalid literal for int(),以10为基数:“”