作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个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/
我是一名优秀的程序员,十分优秀!