【问题标题】:Pratical data science cookbook code python实用数据科学食谱代码python
【发布时间】:2016-02-10 05:14:57
【问题描述】:

所以,我正在尝试使用本书中的代码:

www.ebooks-it.net/ebook/practical-data-science-cookbook

就是这个:

我是 python 新手,所以我不确定我是否正确使用它。我试着这样做:

import numpy
import pandas
import networkx as nx
import unicodecsv as csv

path = pandas.read_csv("hero-network.csv", low_memory=False)

def graph_from_csv(path):
    graph = nx.Graph(name="Heroic Social Network")
    with open(path, 'rU') as data:
        reader = csv.reader(data)
        for row in reader:
            graph.add_edge(*row)
    return graph.size()

graph_from_csv(data)

但我没有得到与书中相同的输出。

我的输出是:

TypeError: invalid file:                LITTLE, ABNER        PRINCESS ZANDA
0              LITTLE, ABNER  BLACK PANTHER/T'CHAL
1       BLACK PANTHER/T'CHAL        PRINCESS ZANDA
2              LITTLE, ABNER        PRINCESS ZANDA
3              LITTLE, ABNER  BLACK PANTHER/T'CHAL
4       BLACK PANTHER/T'CHAL        PRINCESS ZANDA
5       STEELE, SIMON/WOLFGA      FORTUNE, DOMINIC
6       STEELE, SIMON/WOLFGA   ERWIN, CLYTEMNESTRA
7       STEELE, SIMON/WOLFGA  IRON MAN/TONY STARK 
8       STEELE, SIMON/WOLFGA  IRON MAN IV/JAMES R.
9       STEELE, SIMON/WOLFGA  RAVEN, SABBATH II/EL
10      RAVEN, SABBATH II/EL      FORTUNE, DOMINIC
11      RAVEN, SABBATH II/EL   ERWIN, CLYTEMNESTRA
12      RAVEN, SABBATH II/EL  IRON MAN/TONY STARK 
13      RAVEN, SABBATH II/EL  IRON MAN IV/JAMES R.
14      IRON MAN IV/JAMES R.      FORTUNE, DOMINIC
15      IRON MAN IV/JAMES R.   ERWIN, CLYTEMNESTRA
16      IRON MAN IV/JAMES R.  IRON MAN/TONY STARK 
17      IRON MAN/TONY STARK       FORTUNE, DOMINIC
18      IRON MAN/TONY STARK    ERWIN, CLYTEMNESTRA
19       ERWIN, CLYTEMNESTRA      FORTUNE, DOMINIC
20            PRINCESS ZANDA  BLACK PANTHER/T'CHAL
21            PRINCESS ZANDA         LITTLE, ABNER
22             LITTLE, ABNER  BLACK PANTHER/T'CHAL
23      BLACK PANTHER/T'CHAL         LITTLE, ABNER
24      BLACK PANTHER/T'CHAL        PRINCESS ZANDA
25      BLACK PANTHER/T'CHAL  CARNIVORE/COUNT ANDR
26      BLACK PANTHER/T'CHAL         LITTLE, ABNER
27             LITTLE, ABNER        PRINCESS ZANDA
28             LITTLE, ABNER  CARNIVORE/COUNT ANDR
29      CARNIVORE/COUNT ANDR        PRINCESS ZANDA
                     ...                   ...
574436  CANNONBALL II/SAM GU  WASP/JANET VAN DYNE 
574437  WASP/JANET VAN DYNE                ROGUE /
574438  WASP/JANET VAN DYNE               CALIBAN/
574439  WASP/JANET VAN DYNE               CALLISTO
574440  WASP/JANET VAN DYNE   COLOSSUS II/PETER RA
574441  WASP/JANET VAN DYNE                 SELENE
574442  WASP/JANET VAN DYNE   PROFESSOR X/CHARLES 
574443  WASP/JANET VAN DYNE   PHOENIX III/RACHEL S
574444  PHOENIX III/RACHEL S               ROGUE /
574445  PHOENIX III/RACHEL S              CALIBAN/
574446  PHOENIX III/RACHEL S              CALLISTO
574447  PHOENIX III/RACHEL S  COLOSSUS II/PETER RA
574448  PHOENIX III/RACHEL S                SELENE
574449  PHOENIX III/RACHEL S  PROFESSOR X/CHARLES 
574450  PROFESSOR X/CHARLES                ROGUE /
574451  PROFESSOR X/CHARLES               CALIBAN/
574452  PROFESSOR X/CHARLES               CALLISTO
574453  PROFESSOR X/CHARLES   COLOSSUS II/PETER RA
574454  PROFESSOR X/CHARLES                 SELENE
574455                SELENE               ROGUE /
574456                SELENE              CALIBAN/
574457                SELENE              CALLISTO
574458                SELENE  COLOSSUS II/PETER RA
574459  COLOSSUS II/PETER RA               ROGUE /
574460  COLOSSUS II/PETER RA              CALIBAN/
574461  COLOSSUS II/PETER RA              CALLISTO
574462              CALLISTO               ROGUE /
574463              CALLISTO              CALIBAN/
574464              CALIBAN/               ROGUE /
574465  HULK/DR. ROBERT BRUC     MARKS, DR. SHIELA

[574466 rows x 2 columns]

【问题讨论】:

  • 你得到什么输出
  • 数据集和书中的例子完全一样吗?
  • 我编辑添加我的输出
  • 是的。完全一样
  • 你为什么要问 2 个类似的问题?

标签: python networking networkx


【解决方案1】:

我猜你的示例代码有一点错误。最后一行应该是graph_from_csv("hero_network.csv")(而不是data,它是DataFrame)?

这解释了TypeError 输出(因为您稍后尝试使用open() 将此DataFrame 作为参数,其中函数期望文件路径为字符串)。

def graph_from_csv(path):
    graph = nx.Graph(name="Heroic Social Network")
    with open(path, 'rU') as data:
        reader = csv.reader(data)
        for row in reader:
            graph.add_edge(*row)
    return graph.size()

graph_from_csv("hero-network.csv")

Out[15]: 167219

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2011-06-23
    • 2017-11-17
    • 1970-01-01
    • 2019-10-08
    • 2018-07-17
    • 1970-01-01
    相关资源
    最近更新 更多