【问题标题】:Finding the column name of row which has highest value while comprehending the row based on max column value在根据最大列值理解行的同时查找具有最高值的行的列名
【发布时间】:2020-06-09 22:21:06
【问题描述】:

我对 Python 还是很陌生。我试图为以下数据集定义一个函数。 Sample data

我首先在cell 3 中寻找最大值。根据这个最大值,我正在检查数据的最后 8 列中给出的哪一列具有最高值。

例如,根据给定的数据,cell 3 is 1470758 中的最大值。现在我正在检查从列cell 9cell 16 的哪些列相对于该最大值具有最高值。在这个示例数据的情况下,答案应该是单元格 10,值为 7201。所以输出应该是单元格 10。

这是我的代码:

def winner(filename):
    data=pd.read_csv(filename, sep=',')
    maxC=data.npop.max()
    while data.loc[data['npop']]==maxC:
        data3=data.iloc[:,-8:].max()
#missing code
winner("demo.csv")

请帮忙。我不明白我应该在缺少的代码部分写什么。

【问题讨论】:

  • 以文本而不是图像的形式提供数据,因此其他人可以轻松复制它
  • 编辑了数据链接。
  • 请检查答案,如果它有效或者您发现任何问题,请告诉我。
  • 是的,它可以工作..但是你能告诉我我的做法是否错误......还是太原始了。
  • 我不确定我是否理解您在那里所做的事情。 npop 是什么?

标签: python pandas list function dataframe


【解决方案1】:

用 cmets 逐行解释代码。

试试这个:

def winner(filename):
    df=pd.read_csv(filename, sep=',')  # Read the csv into dataframe.
    column_names = list(df.columns.values) # Get list of column names

    max_col3_index = df['col3'].idmax()  # this will return the index of max value in `col3` column.

    row_data = df.loc[max_col3_index, column_names[-8:]]  # get series of data present in last 8 columns at above index.

    final_column_name = row_data.idxmax()  # Get the name of column having max value in above series.

    print(final_column_name)

【讨论】:

    猜你喜欢
    • 2015-07-07
    • 2022-11-02
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多