pandas.Series.from_csv
已过时(从0.21版开始)。
我想更改代码以使用pandas.read_csv
。
但是,我根本找不到在没有标题行的情况下为csv文件加载相同数据的变体。
例如,假设以下csv:
cntry,country
ctr,center
hts,heights
ft,fort
mt,mount
spg,springs
spgs,springs
st,saint
ter,terrace
e,east
w,west
s,south
n,north
以下不推荐使用的代码:
z1 = pd.Series.from_csv('file.csv')
type(z1)
z1.shape
z1
给我(在笔记本中执行):
pandas.core.series.Series
(13,)
cntry country
ctr center
hts heights
ft fort
mt mount
spg springs
spgs springs
st saint
ter terrace
e east
w west
s south
n north
dtype: object
使用pandas.read_csv
和以下各项的组合,我无法获得相同的结果:
index_col=0
; header=None
; parse_dates=True
; squeeze=True
。例如:
z2 = pd.read_csv('file.csv',index_col=0,header=None,parse_dates=True,squeeze=True)
type(z2)
z2.shape
z2
给我:
pandas.core.series.Series
(13,)
0
cntry country
ctr center
hts heights
ft fort
mt mount
spg springs
spgs springs
st saint
ter terrace
e east
w west
s south
n north
Name: 1, dtype: object
0
中的差异。 .values
或.iteritems()
中未显示。但是,我不了解它是什么,以及如何使用pandas.read_csv
及其参数消除它。
更新
0
-是索引的标题。可以使用.rename_axis(index=None)
删除。
1
-是系列标题。可以使用.rename()
删除。
到目前为止,我还看不到如何使用pandas.read_csv
来做到这一点。
答案 0 :(得分:0)
您应该能够执行以下操作:
z1 = pd.read_csv('file.csv', header=None, names=['', 'values'], index_col=0)['values']
这会将文件读入数据帧,将第一列设置为索引,然后选择第二列(名为“值”)作为系列。
与您的示例的唯一区别是系列的名称将为“值”。如果不需要,您可以始终运行z1.name = None
。
答案 1 :(得分:0)
使用提供的解决方案几乎可以正常工作,但是对我而言,该索引是datetime索引,并且在开始时我具有NaT值。解决方法:
def load_pandas_series(filename):
df1 = pd.read_csv(filename, index_col=0, names=['', 'values'],
header=None, parse_dates=True)['values']
df1.name = None
df1 = df1[~df1.index.isnull()]
return df1