Построить список из набора данных значений и количества значений - PullRequest
2 голосов
/ 23 сентября 2019

Чтобы развернуть данные Score в список Scores на основе Count, есть ли лучший способ для pandas и numpy, чем следующий?

import pandas as pd
import numpy as np

data = {
    "Count": [1, 3, 2],
    "Score": [2, 5, 8]
}

df = pd.DataFrame(data)

scores = []

for c, s in zip(df['Count'], df['Score']):
    for i in range(0, c):
        scores.append(s)

print(scores)

Ожидаемый результат:

[2, 5, 5, 5, 8, 8]

1 Ответ

3 голосов
/ 23 сентября 2019

IIUC, вы можете использовать pd.series.repeat:

df['Score'].repeat(df['Count']).tolist()

Или np.repeat:

np.repeat(df['Score'],df['Count']).tolist()

Или pd.Index.repeat:

df.loc[df.index.repeat(df['Count']),'Score'].tolist()

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