【问题标题】:How do I go about selecting column data in a dataframe for specific row values in python?如何在数据框中为 python 中的特定行值选择列数据?
【发布时间】:2017-12-20 11:55:05
【问题描述】:

正如问题所说,我有一个很大但看起来像这样的数据框:

        ID    Count    ValueX    Value 2    Value 3
RowX    1      234.     255.       yes.      yes
RowY    1      123.     135.       543.      342
RowW    1      234.     235.       yes.      yes
RowJ    1      123.     115.       543.      342
RowA    1      234.     285.       yes.      yes
RowR    1      123.     165.       543.      342
RowX    2      234.     255.       yes.      yes
RowY    2      123.     135.       543.      342
RowW    2      234.     235.       yes.      yes
RowJ    2      123.     115.       543.      342
RowA    2      234.     285.       yes.      yes
RowR    2      123.     165.       543.      342
.
.
.
RowX    1233   234.     255.       yes.      yes
RowY    1233   123.     135.       543.      342
RowW    1233   234.     235.       yes.      yes
RowJ    1233   123.     115.       543.      342
RowA    1233   234.     285.       yes.      yes
RowR    1233   123.     165.       543.      342

我想要的是能够为每个 ID 号 1-1233 选择列 ValueX 中的所有值,其中行是 RowX 并将它们返回到一个列表中。

【问题讨论】:

  • 谢谢大家!你真的很有帮助:)
  • 您应该将这些答案之一标记为“已接受”。
  • 我做到了!再次感谢

标签: python pandas dataframe anaconda


【解决方案1】:

IIUC:

In [30]: df.loc[df.index.isin(['RowX']) & df['ID'].between(1, 1233), 'ValueX'].tolist()
Out[30]: [255.0, 255.0, 255.0]

【讨论】:

  • 非常感谢!
【解决方案2】:
df.query('1 <= ID <= 1233').loc['RowX', 'ValueX']

RowX    255.0
RowX    255.0
RowX    255.0
Name: ValueX, dtype: float64

【讨论】:

  • 您是否考虑将.tolist() 添加到答案中的表达式中,因为问题要求提供列表?
【解决方案3】:
filtered_df = df[(df.ID.between(1, 1233)) & (df.index == 'RowX')][['ValueX']]

values_list = filtered_df.ValueX.tolist()

【讨论】:

    猜你喜欢
    • 2022-11-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2020-10-13
    • 1970-01-01
    • 2015-03-29
    相关资源
    最近更新 更多