在阵列上调节熊猫数据框

时间:2020-09-15 22:19:51

标签: python arrays pandas dataframe conditional-statements

我试图弄清楚如何对创建的数组进行条件处理。

first6 = df["Tbl_Name_Dur"].unique()[0:6]
for element in first6:
    print(element)

df_test = df[df['Tbl_Name_Dur'] for element in first6]

我已经打印了元素,并且可以正常工作。我如何以基于first6选择数据框为条件。我尝试了以下方法:

df_test = df[df['Tbl_Name_Dur'] in first6]
df_test = df[df['Tbl_Name_Dur'] == first6]

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以使用isin方法。这是一个示例:

import pandas as pd
  
data_dict = {'col': pd.Series([1, 2, 3, 4, 4, 5, 6, 7, 8 ,8 ])}
df = pd.DataFrame(data_dict)
first6 = df.col.unique()[0:6]

df = df[df.isin(first6)]
df.dropna(inplace=True)
print(df)

或者,您可以将lambda函数与map一起使用:

import pandas as pd
  
data_dict = {'col': pd.Series([1, 2, 3, 4, 4, 5, 6, 7, 8, 8 ])}
df = pd.DataFrame(data_dict)
first6 = df.col.unique()[0:6]
df = df[df.col.map(lambda x : x in first6)]
print(df)

输出

   col
0  1
1  2
2  3
3  4
4  4
5  5
6  6