Конвертировать pandas столбец в список в указанных c позициях - PullRequest
1 голос
/ 10 февраля 2020

У меня есть лист номеров Excel. Это мои фиксированные возможные показания. Их сотни. У меня есть эти данные всех возможных чтений, к сожалению, не работает цифры. Позиция важна, если вы читаете дальше.

Пример листа, позиция не меняется:

         Readings
0        1111        
1        1234
2        1243
3        9999
4        1237
5        1412
 ...
999      8878

Теперь по понедельникам я должен брать новые показания, скажем, 5 из них (больше на самом деле но 5 для простоты).

Pandas фрейм данных:

       Taken
0     9999
1     9999
2     1237
3     8878
4     1412

Мне нравится представлять их в виде списка, показывающего количество вхождений. X, если он появляется X раз, 0, если нет. Итак, эти 5 показаний будут:

[0,0,0,2,1,1,1, .... 0]

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 10 февраля 2020

Этот код может быть хорошим подходом для вашей проблемы:

import pandas as pd
df1 = pd.DataFrame({"Readings":[1111,1234,1243,9999,1237,1412,8878]})
df2 = pd.DataFrame({"Taken":[9999,9999,1237,8878,1412]})

def checkOcurrance(val):
    count = 0
    try:
        count = df2["Taken"].value_counts()[val]
    except:
        pass
    return count

df1["Ocurrance"] = df1["Readings"].apply(checkOcurrance)

Тогда df1 приведет к:

>>> df1
   Readings  Ocurrance
0      1111          0
1      1234          0
2      1243          0
3      9999          2
4      1237          1
5      1412          1
6      8878          1

И вы можете передать столбец Ocurrance в список, чтобы, наконец, получить Ваш список выглядит следующим образом:

out = df1["Ocurrance"].tolist()

В результате:

>>> out
[0L, 0L, 0L, 2L, 1L, 1L, 1L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...