例如我有简单的 DF:
import pandas as pd from random import randint df = pd.DataFrame({'A': [randint(1, 9) for x in range(10)], 'B': [randint(1, 9)*10 for x in range(10)], 'C': [randint(1, 9)*100 for x in range(10)]})
我可以使用 Pandas 的方法和习语从“A”中选择出与“B”对应的值大于 50,与“C”对应的值不等于 900 吗?
是的,您可以从 DataFrame 中的“A”列中选择值,df这些值在“B”列中的对应值大于 50,而在“C”列中的值不等于 900。您可以使用 Pandasloc方法来实现这一点。以下是操作方法:
df
loc
import pandas as pd from random import randint # Create the DataFrame df = pd.DataFrame({'A': [randint(1, 9) for x in range(10)], 'B': [randint(1, 9) * 10 for x in range(10)], 'C': [randint(1, 9) * 100 for x in range(10)]}) # Select values from 'A' where 'B' > 50 and 'C' != 900 result = df.loc[(df['B'] > 50) & (df['C'] != 900), 'A'] print(result)
在此代码中:
df['B'] > 50
True
df['C'] != 900
&
df.loc[conditions, 'A']
以下是示例输出:
0 2 1 3 3 5 7 8 Name: A, dtype: int64
输出将显示满足“B”列和“C”列条件的行的“A”列值。请注意,实际输出将取决于 DataFrame 中随机生成的值。