尝试执行挤压时能够导入 CSV,但它看起来像一个数据框而不是一个系列?
这就是我尝试过的
import pandas as pd
import numpy as np
dnd_name = pd.read_csv(r"dnd-dataframe.csv", usecols = ["name"], squeeze = True)
dnd_name.head()
Run Code Online (Sandbox Code Playgroud)
这是我所期望的,至少我记得学习输出不是数据框,而是更像一个系列?
我原以为它会像一个系列一样出现,而不像数据框那样,看起来像这样
name
bam Bard Dagger, sling, club Transmutation, Enchantment
niem Sorcerer light crossbow, battleaxe Necromancy
aem Paladin Greataxe Abjuration, Conjuration
yaeks Rogue club, battleaxe Conjuration, Evocation, Transmutation
jeeks Druid Dagger, Greataxe Evocation, Transmutation, Necromancy
Name: Type, dtype: object
Run Code Online (Sandbox Code Playgroud)
这是错误
但相反,我收到了一个错误
import pandas as pd
import numpy as np
dnd_name = pd.read_csv(r"dnd-dataframe.csv", usecols = ["name"], squeeze = True)
dnd_name.head()
Run Code Online (Sandbox Code Playgroud)
收到错误
usecols_dtype = lib.infer_dtype(usecols, skipna=False)
ValueError: 'usecols' must either be list-like of all strings, all unicode, all integers or a callable.
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个措辞但看起来也不如预期
import pandas as pd
import numpy as np
dnd_name = pd.read_csv(r"dnd-dataframe.csv", index_col = "name", squeeze = True)
dnd_name.head()
Run Code Online (Sandbox Code Playgroud)
注:以下非图片数据框

Run Code Online (Sandbox Code Playgroud)
我可以正常地将其导入数据框中,然后得到
import pandas as pd
import numpy as np
dnd_df = pd.read_csv(r"dnd-dataframe.csv")
dnd_df.head()
name herotype weapons spells
0 bam Bard Dagger, sling, club Transmutation, Enchantment
1 niem Sorcerer light crossbow, battleaxe Necromancy
2 aem Paladin Greataxe Abjuration, Conjuration
3 yaeks Rogue club, battleaxe Conjuration, Evocation, Transmutation
4 jeeks Druid Dagger, Greataxe Evocation, Transmutation, Necromancy
Run Code Online (Sandbox Code Playgroud)
使用 siamak safari 注释修复导入后
import pandas as pd
import numpy as np
dnd_names = pd.read_csv(r"dnd-dataframe.csv", usecols = ["name", "herotype", "weapons", "spells"], squeeze = True)
dnd_names.head()
Run Code Online (Sandbox Code Playgroud)
name herotype weapons spells
0 bam Bard Dagger, sling, club Transmutation, Enchantment
1 niem Sorcerer light crossbow, battleaxe Necromancy
2 aem Paladin Greataxe Abjuration, Conjuration
3 yaeks Rogue club, battleaxe Conjuration, Evocation, Transmutation
4 jeeks Druid Dagger, Greataxe Evocation, Transmutation, Necromancy
Run Code Online (Sandbox Code Playgroud)
正如 Gregor 所指出的,我正在尝试的内容不适用于多列,但如果我制作新的 csv,其中只有 2 列,一列用于索引,另一列用于索引,则它可以工作。
dnd_name1 = pd.read_csv(r"dnd-dataframe-v2.csv", index_col = ["name"], squeeze = True)
dnd_name1.head()
name
bam Bard
niem Sorcerer
aem Paladin
yaeks Rogue
jeeks Druid
Name: herotype, dtype: object
Run Code Online (Sandbox Code Playgroud)
自 pandas 1.4.0 版本以来,该参数squeeze已弃用。
附加.squeeze("columns")到数据框,您将得到一个系列。
请参阅文档:https ://pandas.pydata.org/docs/reference/api/pandas.read_csv.html