簡體   English   中英

Python:從條件for循環中打印出結果

[英]Python: Printing out result from conditional for loop

我有一個簡單的問題。 我有一個小數據幀:

      Column1  Column2  Column3
Row1        0        4        6
Row2        1        3        5
Row3        0        4        2

我只需要在Column1等於1時才打印出Column1Column2

      Column1  Column2
Row2        1        3

我有這段代碼,我被困在:

col=[col for col in df.columns if col=="Column1" or col=="Column2"]
print(loc[:,col])

這將打印出結果,以便我們將Column1Column2包含所有值。

      Column1  Column2
Row1        0        4
Row2        1        3
Row3        0        4

如何將條件列入Column1==1

謝謝!

最簡單的兩種方法是使用帶有布爾索引的.loc和帶有列過濾的query

方法1:

df.loc[df.Column1 == 1,['Column1','Column2']]

輸出:

      Column1  Column2
Row2        1        3

方法2:

df.query('Column1 == 1')[['Column1','Column2']]

輸出:

      Column1  Column2
Row2        1        3

您可以使用條件索引:

>>> df[df['Column1'] == 1]
      Column1  Column2  Column3
Row2        1        3        5

然后只需選擇所需的列:

>>> df[df['Column1'] == 1][['Column1', 'Column2']]
      Column1  Column2
Row2        1        3

您可以使用python的namedtuple來執行此操作。 Namedtuple創建單獨的單個類來表示值。 值得記住的是,類只有值而沒有方法。

會是這樣的:

from collections import namedtuple

Value = namedtuple('Value', ['column', 'line', 'value'])

examples = [Value(column, line, value) for column in range(3)
                                       for line in range(2)
                                       for value in range(2)]

>>> examples
[Value(column=0, line=0, value=0), Value(column=0, line=0, value=1), Value(column=0, line=1, value=0), Value(column=0, line=1, value=1), Value(column=1, line=0, value=0), Value(column=1, line=0, value=1), Value(column=1, line=1, value=0), Value(column=1, line=1, value=1), Value(column=2, line=0, value=0), Value(column=2, line=0, value=1), Value(column=2, line=1, value=0), Value(column=2, line=1, value=1)]

for _ in examples:
  if _.column == 1:
    print('Line: %s' % _.line, 'Value: %s' % _.value)

Line: 0 Value: 0
Line: 0 Value: 1
Line: 1 Value: 0
Line: 1 Value: 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM