答案内容: 对每个站点的前n个值的列名称进行排序,并在数据框中生成结果的方法如下:
import pandas as pd
# 创建一个示例数据框
df = pd.DataFrame({
'站点1': [10, 5, 8, 12],
'站点2': [7, 6, 11, 9],
'站点3': [15, 3, 4, 14]
})
head()
方法获取前2个值,然后使用sort_values()
方法按照值进行排序。n = 2
# 对每个站点的前n个值进行排序
sorted_df = pd.DataFrame({
'站点1': df['站点1'].head(n).sort_values(ascending=False).index,
'站点2': df['站点2'].head(n).sort_values(ascending=False).index,
'站点3': df['站点3'].head(n).sort_values(ascending=False).index
})
apply()
方法和lambda函数将排序后的列名称赋值给结果列。# 在数据框中生成结果列
df['结果'] = sorted_df.apply(lambda x: ', '.join(x), axis=1)
完整的代码示例如下:
import pandas as pd
# 创建一个示例数据框
df = pd.DataFrame({
'站点1': [10, 5, 8, 12],
'站点2': [7, 6, 11, 9],
'站点3': [15, 3, 4, 14]
})
n = 2
# 对每个站点的前n个值进行排序
sorted_df = pd.DataFrame({
'站点1': df['站点1'].head(n).sort_values(ascending=False).index,
'站点2': df['站点2'].head(n).sort_values(ascending=False).index,
'站点3': df['站点3'].head(n).sort_values(ascending=False).index
})
# 在数据框中生成结果列
df['结果'] = sorted_df.apply(lambda x: ', '.join(x), axis=1)
print(df)
这样,我们就可以得到一个包含排序结果的数据框。每个站点的前n个值的列名称将按照降序排列,并以逗号分隔存储在结果列中。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云