我有一个双模网络的边缘列表,类似于:
person Event
Amy football_game
Sam picnic
Bob art_show
Run Code Online (Sandbox Code Playgroud)
我想在R中对此进行分析,但看起来我尝试的一切都失败了.将其转换为单模式网络会遇到内存限制,我无法弄清楚如何在igraph或tnet中将其分析为二分.
在igraph中,bipartite.projection给我所有FALSE,在使用的igraph对象上
net <- graph.edgelist(myobject)
Run Code Online (Sandbox Code Playgroud)
在tnet上,我无法将igraph网转换为tnet网,当我尝试使用原始数据框时,它会因图中的重复而拒绝.
因此,以下任何一个的答案将非常感激:
bipartite.mapping功能?很抱歉,如果这些是基本问题,但文档很少.
例:
edgelist <- read.table(text="Person Event
Amy football
Bob picnic
Sam artshow",
header=TRUE)
edgelist <- as.matrix(edgelist)
## Igraph Issues
igraph <- graph.edgelist(edgelist)
typevector <- bipartite.projection(igraph)
# gets all FALSE
edgelist2 <- get.edgelist(igraph)
typevector <- bipartite.projection(edgelist2)
# same thing
## tnet issues
tnet <- as.tnet(edgelist)
# gives error: "There are duplicate events in the edgelist" …Run Code Online (Sandbox Code Playgroud) 所以,这应该是一个非常简单的事情,但无论出于何种原因,我没有做任何事情来将字符串数组转换为浮点数组.
我有一个两列数组,如下所示:
Name Value
Bob 4.56
Sam 5.22
Amy 1.22
Run Code Online (Sandbox Code Playgroud)
我试试这个:
for row in myarray[1:,]:
row[1]=float(row[1])
Run Code Online (Sandbox Code Playgroud)
还有这个:
for row in myarray[1:,]:
row[1]=row[1].astype(1)
Run Code Online (Sandbox Code Playgroud)
还有这个:
myarray[1:,1] = map(float, myarray[1:,1])
Run Code Online (Sandbox Code Playgroud)
他们似乎都做了些什么,但是当我仔细检查时:
type(myarray[9,1])
Run Code Online (Sandbox Code Playgroud)
我明白了
<type> 'numpy.string_'>
Run Code Online (Sandbox Code Playgroud) 假设我有一个包含两个日期的列的数据框,我想创建一个新列,其值是这些日期之间的月数.
>df
Index Date1 Date2
1 2012/03/07 2013/03/16
2 2012/12/05 2012/12/25
3 2010/06/30 2013/05/19
4 2002/11/02 2011.06.08
df["Date1"]= pd.to_datetime(df["Date1"])
df["Date2"]= pd.to_datetime(df["Date2"])
Run Code Online (Sandbox Code Playgroud)
Date1将始终位于date2之前.我目前的这种方法需要大约10个步骤,我很确定有一个更简单的方法来做到这一点.思考?
我有两个像这样的数据框:
节点:
new_id Name old_id
1 foo 560
2 fie 561
3 fee 562
4 fim 563
Run Code Online (Sandbox Code Playgroud)
相关:
StartID EndID
560 561
561 563
561 562
563 560
Run Code Online (Sandbox Code Playgroud)
其中第二个文件中的 ID 是第一个文件中的旧 ID。我想根据第一个文件中的匹配行更新第二个文件中的 ID。
期望的结局:
StartID EndID
1 2
2 4
2 3
4 1
Run Code Online (Sandbox Code Playgroud)
我正在查看replace(),但不清楚在不知道索引的情况下如何使用它。