python - 如何在 DataFrame 的每一行上添加两列的 value_counts?

标签 python pandas networkx

我有这个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

最佳答案

你可以这样做:

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

关于python - 如何在 DataFrame 的每一行上添加两列的 value_counts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53600889/

相关文章:

python - 按两列对行进行分组并通过比较过滤值

python - 如何实时更新 NetworkX 图?

python - 必须指向二维图(x,y)坐标networkx python

python - 适用于 python3 的 Windows 的 Redis 服务器

python - 整数或 bool 值的 TensorFlow 占位符变量不起作用

python - 如何在 Python/Matplotlib 中根据特征值和特征向量绘制椭圆?

python - 检查某列的值是否位于 pandas 数据框中的另一个列数组中

python - 如果未指定,默认的 Celery 日志级别是多少?

python - 我应该如何构建和访问数据表,以便我可以在 Python 3.5 中轻松比较子集?

python - Matplotlib colorbar 未在 networkX 中使用正确的颜色图