我有这个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
答案 0 :(得分: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