Как добавить value_counts для двух столбцов в каждой строке DataFrame? - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть DataFrame , который я взял из другого DataFrame.У этого есть начальная станция для поездки на велосипеде и конечная станция.Я планирую добавить их в сеть с помощью networkx и from_pandas_dataframe ().Мне просто нужно сделать еще одну серию / столбец для весов.

Я хочу, чтобы для каждой строки было найдено value_counts для каждой начальной станции и конечной станции и сложить их вместе как вес.

Итак, для первой записи я бы нашел вхождения для станций 3058 и 3082, добавил их и поместил результат в столбец весов, например this .

РЕДАКТИРОВАТЬ: добавление кода какспросил:

df = data[['start_station','end_station']]
a = df.start_station.value_counts()
b = df.end_station.value_counts()
pd.options.display.max_rows=300
c = a + b

А вот набор данных: https://ufile.io/cxbov

1 Ответ

0 голосов
/ 03 декабря 2018

Вы можете сделать это так:

df = pd.read_csv('metro.csv')

s = df[['start_station','end_station']].apply(pd.value_counts).sum(1)

df_out = df[['start_station','end_station']].assign(weight = df['start_station'].map(s) + df['end_station'].map(s))

print(df_out.head())

Вывод:

   start_station  end_station  weight
0           3058         3082    6248
1           3058         3082    6248
2           4147         4174     496
3           4157         4162     903
4           3013         3013     100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...