Найти значение ячейки на основе других ячеек в Pandas Dataframe - PullRequest
0 голосов
/ 31 марта 2020
          0            1    2
0  this           is  1.0
1    my         book  1.0
2  book         this  1.0
3    is           my  0.5
4    is  interesting  0.5 

Мой фрейм данных выглядит так, но он динамический c. Так что это также может выглядеть как

      0     1            2    3
0  this    is  interesting  0.5
1    is    my         book  1.0
2  this    is           my  0.5
3    my  book         this  1.0
4  book  this           is  1.0

Теперь я хочу получить значения с плавающей запятой из последнего столбца для представления значений первых трех столбцов в виде кортежа. Как и

("this","is") 
("this","is","interesting")

, это должно дать мне значение 1,0 и 0,5 соответственно. Пожалуйста, помогите мне решить эту проблему.

В настоящее время я использую это

row = df[(df["0"] == "is") & (df["1"] == "my")]

, но это не динамический c.

1 Ответ

0 голосов
/ 31 марта 2020

Я не уверен, что это то, что вам нужно, посмотрите и посмотрите, можете ли вы изменить его в соответствии с вашими потребностями:

 f = ("this","is","interesting")

#condition checks if words can be found in the dataframe
#looks for rows that has all the words
#and converts to an array of True or False
cond = df.iloc[:,:-1].isin(f).all(axis=1).to_numpy()

#filter the dataframe, to get the values from the last column 
#where condition is True
#iloc works with an array or list of Booleans,
#it cannot reference a series label,
#hence then need to convert the cond to a list or array
df.iloc[cond,-1]

0    0.5
Name: 3, dtype: float64

Конечно, вы можете присвоить результат столбцу. .. но я не уверен, что это то, что ты после

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...