gpt4 book ai didi

python - 根据两个条件提取列值

转载 作者:行者123 更新时间:2023-11-28 20:36:09 25 4
gpt4 key购买 nike

我有以下文本输出,我的目标是仅在第 1 列中的值大于 1 但小于或等于 4 时选择第 2 列的值。所以我正在寻找 Python 来打印第 2 列的值为 [-6,0,-4] 因为只有这些值符合第 1 列的条件。

  1. 1 2
  2. 2 -6
  3. 3 0
  4. 4 -4
  5. 5 100

我尝试了以下方法。

import pandas as pd
import numpy as np
data= pd.read_table('/Users/Hrihaan/Desktop/A.txt', dtype=float, header=None, sep='\s+').values
x=data[:,0]
y=np.where(1< x<= 4, data[:, 1], np.nan)
print(y)

我收到以下错误:ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

任何建议都会很有帮助。

最佳答案

第一次使用 .loc

df.loc[(df.a>1)&(df.a<=4), 'b']
Out[316]:
1 -6
2 0
3 -4

第二个根据你自己的方法

np.where((df.a<= 4)&(df.a>1), df.b,np.nan)

Out[322]: array([ nan, -6., 0., -4., nan])

数据输入:

df = pd.DataFrame({"a":np.arange(1,6), "b":[2,-6,0,-4,100]})

关于python - 根据两个条件提取列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45640926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com