У меня есть этот 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
Вы можете сделать это так:
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