【问题标题】:Is it possible to find row by using value of row csv?是否可以通过使用行 csv 的值来查找行?
【发布时间】:2021-11-29 18:59:23
【问题描述】:
Welcome - Please chose month --November or Oktober--
November
Please choose date numeric. Last date available 16th November
15
Empty DataFrame
Columns: [0, 1, 2]
Index: []
                   0    1    2
0   15.11.2021 23:30  165  1,3
1   15.11.2021 23:00  176  1,4
2   15.11.2021 22:30  175  1,6
3   15.11.2021 22:00  173  1,4
4   15.11.2021 21:30  165  1,7
5   15.11.2021 21:00  171  1,7
6   15.11.2021 20:30  176  1,9
7   15.11.2021 20:00  176  1,7
8   15.11.2021 19:30  171  1,8
9   15.11.2021 19:00  167  2,3
10  15.11.2021 18:30  175  1,9
11  15.11.2021 18:00  167  1,9
12  15.11.2021 17:30  169  1,8
13  15.11.2021 17:00  156  2,5
14  15.11.2021 16:30  155  2,4
15  15.11.2021 16:00  156  2,2
16  15.11.2021 15:30  151  2,4
17  15.11.2021 15:00  151    2
18  15.11.2021 14:30  153  2,8
19  15.11.2021 14:00  153  2,9
20  15.11.2021 13:30  152  2,4
21  15.11.2021 13:00  155  2,6
22  15.11.2021 12:30  159  2,2
23  15.11.2021 12:00  168  1,8
24  15.11.2021 11:30  161    2
25  15.11.2021 11:00  166  2,2
26  15.11.2021 10:30  155  1,9
27  15.11.2021 10:00  148  1,7
28  15.11.2021 09:30  152  1,3
29  15.11.2021 09:00  148  1,6
30  15.11.2021 08:30  136  2,9
31  15.11.2021 08:00  131  3,4
32  15.11.2021 07:30  113  2,9
33  15.11.2021 07:00  118  2,7
34  15.11.2021 06:30  140  2,3
35  15.11.2021 06:00  140  2,1
37  15.11.2021 05:00  123  1,7
38  15.11.2021 04:30  115  2,2
39  15.11.2021 04:00  115    2
40  15.11.2021 03:30  123  1,7
41  15.11.2021 03:00  134  1,8
42  15.11.2021 02:30  127  2,4
43  15.11.2021 02:00  121  2,5
44  15.11.2021 01:30  131  2,3
45  15.11.2021 01:00  129  2,1
46  15.11.2021 00:30  134  2,1
47  15.11.2021 00:00  133  1,7

我想知道是否可以使用单元格的值来找到该值所属的行?

我通过以下方式找到了价值:

row_1=df.iloc[:, [2]].max().

我已经尝试、搜索过,但未能找到实现它的方法。 我希望你能抽出时间来帮助我。

elif Nov == str(15):
    def b():
        from openpyxl import load_workbook
        wb = load_workbook(filename='Wind.xlsx', 
                         read_only=True)
        ws = wb['Sheet1']
        data_rows = []
        for row in ws['34':'81']:
            data_cols = []
            for cell in row:
                data_cols.append(cell.value)
            data_rows.append(data_cols)
        import pandas as pd
        df = pd.DataFrame(data_rows)
        row_1=df.iloc[:, [2]].max()
        print(row_1)
        print (df)
    b()

【问题讨论】:

  • 这个值可以在任何列吗?例如,它的价值是多少?
  • 值是 3,4 但我想通过变量 row_1 找到值。然后我不必在我的代码中为每个 def 找到输入 max() :)
  • 您能否提供一个最小可重现的示例?例如,包括df.head().to_dict() 的输出和您的预期输出。 “使用单元格的值来查找值所属的行”是什么意思?您在寻找什么价值?
  • 我想找到一种方法来使用某个单元格的值(来自excel)来确定行并显示放置值的行。我使用 openpyxl 和熊猫。 max() 值应该保留在变量内,这样我就不必从变量中提取变化的值

标签: python pandas csv printing openpyxl


【解决方案1】:

例如,如果这是您的数据框,df

   col1  col2
0   36      5
1   2       8
2   4       9
3   6       7
4   15      28

通过选择您要查找的列来执行此操作。

df.col1[df.col1 == 15].index.tolist()

你会得到[4]

这当然只适用于列。

您也可以逐列迭代地搜索。

for col in df.columns:
    if df.col[df.col== 15].index.tolist():
        print(col, df.col[df.col== 15].index.tolist()[0])

输出将是col1 4

您可以从那里轻松更改格式。

【讨论】:

  • 感谢您的评论。我正在寻找一种方法来使用变量 row_1 来查找最大值所属的行。我必须重复这个过程几次,所以我必须尽可能简短:)
  • 是的,这也可以,但我需要一些数据框和输出示例
  • 我已经发布了一个输出示例:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 2020-06-04
  • 1970-01-01
  • 2012-11-02
相关资源
最近更新 更多