在一定条件下从数据帧中获取值

时间:2019-07-16 15:45:37

标签: python-3.x

我有一个数据框,其中包含3列(['A','B','C])和3行。 我们使用一个for循环根据B列中的特定条件从上述数据帧中获取值(存储到变量中)。 此外,我们使用列表来存储变量中存在的值。 这里的问题是在检查列表值时,我们正在获取变量值,其类型。 我不确定为什么会这样。列表仅应包含变量值。

请任何人都可以帮助我们获得理想的解决方案。

谢谢, 布万

dataframe: columns-A,B,C rows value- a to i :df = ([a,b,c][d,b,f][g,b,i]).
list_1=[]
for i in range(0,9):
    variable_1=df['A'][df.B == 'b']
    list_1.append(variable_1)
print(list_1):

理想的输出:['a','d','g'] 当我们获得输出为 ['a type: object','d type: object','g type: object']

1 个答案:

答案 0 :(得分:0)

您可以像这样获得理想的输出:

import pandas as pd
df = pd.DataFrame({'A': ['a', 'd', 'g'], 'B': ['b', 'b', 'b'], 'C': ['c', 'f', 'i']})

list_1 = list(df[df['B'] == 'b']['A'].values)  # <- this line

print(list_1)
> ['a', 'd', 'g']

您只需要:
1)通过“ B”列df[df['B'] == 'b']过滤数据框
2),然后才将结果列“ A”的值转换为列表