【发布时间】:2019-08-15 04:29:01
【问题描述】:
我有一列 np.array 数据添加到我的 pandas 数据框的最后一列。但是,我需要在该 np.array 中按升序排序的数据。 (它在从中提取的数据框中没有按升序排序。)
数据框结构:
GFP_spot_1_position, GFP_spot_2_position, GFP_spot_3_position, ...
0 _ 0.2, 0.4, 0.6, NaN
1 _ 0.8, 0.2, NaN, NaN
2 _ 0.7, 0.5, 0.6, 0.9
3 _ 0.5, NaN, 0.1, NaN
我想要的样子:
gfp_spots_all
0 _ [0.2, 0.4, 0.6, nan]
1 _ [0.2, 0.8, nan, nan]
2 _ [0.5, 0.6, 0.7, 0.9]
3 _ [0.1, 0.5, nan, nan]
下面的代码实际上是什么样子的:
gfp_spots_all
0 _ [0.2, 0.4, 0.6, NaN]
1 _ [0.8, 0.2, NaN, NaN]
2 _ [0.7, 0.5, 0.6, 0.9]
3 _ [0.5, NaN, 0.1, NaN]
这是我目前的代码:
df = pd.read_csv('dfall.csv')
dfgfp = df.loc[:, 'GFP_spot_1_position':'GFP_spot_4_position']
df['gfp_spots_all'] = dfgfp.apply(lambda r: list(r),
axis=1).apply(np.array)
df.head()
我无法查看或排序数组中的值。请帮忙!另外,我也是python新手,所以我边走边学。请随时纠正我草率的代码。
【问题讨论】:
-
您需要对列本身进行排序,还是只对最后一列中的数字进行排序?如果是后者,您应该能够将
sorted(list(x))包含到您的 lambda 中 -
您是否在 Pandas 或 Numpy 文档中搜索排序方法? pandas.pydata.org/pandas-docs/stable ... docs.scipy.org/doc/numpy/reference/index.html
标签: python pandas sorting dataframe