gpt4 book ai didi

python - 为什么在 pd.read_csv() 之后创建虚拟 '0' 行?

转载 作者:行者123 更新时间:2023-12-01 02:02:19 25 4
gpt4 key购买 nike

为什么在 read_csv 之后多了一个名为“0”的行?

在下面的代码中,我将 df1 保存到 csv 文件并读取它。但是,还有一个名为“0”的附加行。我怎样才能避免它?

d1 = {'a' : 1, 'b' : 2, 'c' : 3}
df1=pd.Series(d1)
print('\ndf1:'); print(df1)

> df1:
> a 1
> b 2
> c 3
> dtype: int64

df1.to_csv("df1.csv")
df1=pd.read_csv("df1.csv", index_col=0, header=None)
print('\ndf1:'); print(df1)

> df1:
> 1
> 0 <<<<---- ????
> a 1
> b 2
> c 3

最佳答案

避免这种情况的一种方法是创建一个 DataFrame(正如您的变量名称所示)而不是一个 Series(您有 atm)。

import pandas as pd
d1 = {'a' : 1, 'b' : 2, 'c' : 3}
df1 = pd.Series(d1).to_frame() # Use to_frame() here
df1.to_csv("df1.csv")
df1 = pd.read_csv("df1.csv", index_col=0)

print(df1) 给出:

   0
a 1
b 2
c 3
<小时/>

另一个解决方案是在导入时实际指定名称。如果您选择此解决方案,那么当您创建系列以提高可读性时,我会将 df1 重命名为 s1。

df1 = pd.read_csv("df1.csv", names=['index','values'], index_col='index')

你会得到:

       values
index
a 1
b 2
c 3

完整示例:

d1 = {'a' : 1, 'b' : 2, 'c' : 3}
s1 = pd.Series(d1)
print('s1:\n{}\n'.format(s1))

s1.to_csv("df1.csv")
df1 = pd.read_csv("df1.csv", names=['index','values'], index_col='index')
print('df1:\n{}\n'.format(df1))

关于python - 为什么在 pd.read_csv() 之后创建虚拟 '0' 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49476516/

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