gpt4 book ai didi

python - 当我在 Pandas 中读取带有 squeeze 设置为 True 的 csv 时,它使数据框不是系列

转载 作者:行者123 更新时间:2023-12-05 06:14:13 31 4
gpt4 key购买 nike

在尝试执行挤压时能够导入 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()

这是我的预期至少我记得学习输出不是数据框而是更像是一个系列?

我原以为它会像一个系列而不是数据框,看起来像这样

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

这是错误

但是,我收到了一个错误


import pandas as pd
import numpy as np

dnd_name = pd.read_csv(r"dnd-dataframe.csv", usecols = ["name"], squeeze = True)
dnd_name.head()

收到错误



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.



我也试过这个措辞但看起来也不像预期的那样

    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()

注:下方非图片数据框

链接到实际数据框 csv csv on github



![image dataframe](/image/GOEAk.png)

我可以正常将它导入到数据框中,然后得到

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

使用 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()

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

正如 Gregor 所指出的那样,我正在尝试的方法不适用于多列,但如果我制作的新 csv 仅包含 2 列,一列用于索引,另一列则有效。

enter image description here

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

最佳答案

参数 squeeze 自 pandas 版本 1.4.0 以来已弃用

.squeeze("columns") 附加到数据框,您将得到一个系列。

参见文档:https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html

关于python - 当我在 Pandas 中读取带有 squeeze 设置为 True 的 csv 时,它使数据框不是系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62982500/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com