小编use*_*931的帖子

在 networkx 图上显示边权重

我有一个包含 3 列的数据框:f1、f2 和分数。我想绘制一个图形(使用 NetworkX)来显示节点(在 f1 和 f2 中)和边缘值作为“分数”。我能够用节点及其名称绘制图形。但是,我无法显示边缘分数。有人可以帮忙吗?

这是我到目前为止:

import networkx as nx
import pandas as pd
import matplotlib.pyplot as plt


feature_1 = ['Boston', 'Boston', 'Chicago', 'ATX', 'NYC']
feature_2 = ['LA', 'SFO', 'LA', 'ATX', 'NJ']
score = ['1.00', '0.83', '0.34', '0.98', '0.89']

df = pd.DataFrame({'f1': feature_1, 'f2': feature_2, 'score': score})
print(df)

G = nx.from_pandas_edgelist(df=df, source='feature_1', target='feature_2', edge_attr='score')
pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True)

#nx.draw_networkx_edge_labels(G, pos, edge_labels=labels)

plt.show()
Run Code Online (Sandbox Code Playgroud)

python networkx

2
推荐指数
1
解决办法
1466
查看次数

ddply总结了多个变量

我看到ddply很好地按变量汇总和分组.我希望ddply只扫描一个非常大的数据帧,并为多个变量提供一个计数(长度).如何才能做到这一点?例如:

inc <- c('inc123', 'inc332', 'inc231', 'inc492', 'inc872', 'inc983')
hw <- c('ss23', 'ss43', 'ss98', 'ss98', 'ss23', 'ss23')
app <- c('lkl', 'dsd', 'lkl', 'jhj', 'lkl', 'dsd')
srvc <- c('rr', 'oo', 'rr', 'qq', 'qq', 'pp')

df <- data.frame(inc, hw, app, srvc)
ddply(df, .(hw), summarise, count = length(inc))
Run Code Online (Sandbox Code Playgroud)

以上将给我计算独特的hw的数量.如果我做

ddply(df, .(hw, app, srvc), summarise, count = length(inc))
Run Code Online (Sandbox Code Playgroud)

我的目标是丢失 - 因为ddply采用hw,app,srvc的每个"独特"组合并计算这些.

有没有办法在一次性中获得所有3个变量的计数?期望得到的df是这样的:(可能有不同的行数).

    hw count
1 ss23     3
2 ss43     1
3 ss98     2

    app count
1   dsd     2
2   jhj     1
3 linux     1 …
Run Code Online (Sandbox Code Playgroud)

r count plyr

1
推荐指数
1
解决办法
9006
查看次数

如果nrow = 1,则跳过ddply

我有一个ddplyIP列表,并在每个IP上应用乐趣.我希望有趣的是只返回一个值nrow(ip.data) > 1.否则,我想ddply跳过该IP并继续.我怎样才能做到这一点?

例如:

pd.outs <- ddply(server_ips, .(ip), function(x) get.ip.outs(x$ip, data))
Run Code Online (Sandbox Code Playgroud)

nrow(ip.data) 将提供(数据)子集中行数的长度.

r skip plyr

1
推荐指数
1
解决办法
438
查看次数

如何使用 rpy2 运行 auto.arima

我想从 Python 调用 R 的 auto.arima 函数。我想我还没有完全理解这个界面。有人可以在这里帮助我 - 将时间序列 obj 发送到 R,调用与预测相关的函数并取回结果?

这是我到目前为止所做的:

from rpy2.robjects import r
from rpy2.robjects import pandas2ri

#create a python time series
count = range(1, 51)
df['count'] = count
df['date'] = pd.date_range('2016-01-01', '2016-02-19')
df.set_index('date', inlace = True)
df.sort_index(inplace = True)

pandas2ri.activate()
r_timeseries = pandas2ri.py2ri(df)
r('fit <- auto.arima(r_timeseries)')
Run Code Online (Sandbox Code Playgroud)

我想我必须导入一些 R 包(如预测)。不确定如何在 Python 中执行此操作,将 Python 时间序列对象正确传递给 R 等。

In [63]: r_ts = pandas2ri.py2ri(df)

In [64]: r_ts
Out[64]:
<DataFrame - Python:0x1126a93f8 / R:0x7ff7bfa51bc8>
[IntVector]
  X0: <class 'rpy2.robjects.vectors.IntVector'>
  <IntVector - …
Run Code Online (Sandbox Code Playgroud)

rpy2

0
推荐指数
1
解决办法
1951
查看次数

标签 统计

plyr ×2

r ×2

count ×1

networkx ×1

python ×1

rpy2 ×1

skip ×1