当我从CSV文件中读取Pandas Series时,它会转换成DataFrame?

4
我创建了一个 pandas Series,然后将其输出到 CSV 文件中。接着我使用 pandas.read_csv 在另一个工作表中尝试打开该 CSV 文件。然后我检查数据类型,结果显示为 DataFrame 对象??
我尝试通过以下方式进行修复-
series = df.transpose()[0]

并且

df.ix[0]

但这对我没有起作用。

非常感谢您提供任何帮助!

以下是我的问题示例-

我将系列输出到CSV,然后CSV表格看起来像这样-

a,2
b,4
c,6
d,8
e,10

然后我使用pd.read_csv(" ")将CSV文件读入另一个工作表中。 当我打印出来时,这是显示的内容-

   a  2
0  b  4
1  c  6
2  d  8
3  e  10

现在它是一个数据框,有列“a”和“2”,我可以在读取CSV时使用header=None来去除这些列...但索引仍然是0、1、2、3,而且它是一个数据框。


给我一个 KeyError:0 - warrick11
在输出的CSV文件的第二列中,这些整数是从哪里来的? - harryscholes
尝试使用 pd.read_csv("my file", header=None, index_col=0).ix[:, 0] - Parfait
仍然出现KeyError: 0错误,感谢您的努力,问题已由John Zwinck解决。 - warrick11
1个回答

9

您需要在 read_csv() 中传递 此选项

squeeze:布尔值,默认为False

如果解析的数据仅包含一列,则返回Series

编辑:根据您添加的其他细节,您需要使用以下完整命令:

pd.read_csv('foo.txt', header=None, squeeze=True, index_col=0)

谢谢回复,我用 pd.read_csv("my file", squeeze="boolean") 读取了文件,但它仍然显示为 DataFrame? - warrick11
你需要传递 pd.read_csv("my file", squeeze=True) - harryscholes
1
当我查看CSV文件信息时,它显示为a,1 b,2 c,3,但是当我读取它时,它称之为DataFrame,并且似乎把'a'和'1'作为列处理......也许我的pandas需要更新?我两个月前安装的。 - warrick11
尝试向 to_csv() 传递 index=False,以创建单列 CSV 文件。 - harryscholes
非常接近了,我在from_csv上使用了header=None和squeeze=True,在to_csv上使用了index=False,现在它显示为一个系列,但由于index=False,它删除了我的(a,b,c)行,我希望索引为a、b、c等,然后与下一行的1、2、3匹配。 - warrick11
1
你能否编辑你的问题,提供一个最小化的可工作示例来说明你的问题? - harryscholes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接