Как добавить value_counts для двух столбцов в каждой строке DataFrame?

1

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

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

Поэтому для первой записи я обнаружил появления для станций 3058 и 3082, добавлю их и поместим результат в столбец веса как это.

EDIT: добавление кода в соответствии с запросом:

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
    Привет и добро пожаловать на ТАК. Пожалуйста, попробуйте разместить свой фактический код здесь вместо изображений. Вы можете проверить, как спросить для получения дополнительной информации.
  • 1
    Также было бы неплохо, если бы вы могли добавить небольшую выборку входных данных и ожидаемый результат.
Теги:
pandas
networkx

1 ответ

1

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню