您可以使用单个列进行读写DataFrame
:
import pandas.util.testing as tm
from pandas import read_csv
df = tm.makeTimeDataFrame()
dfa = df[['A']].T
dfa.to_csv('the_csv.csv')
dfa_hat = read_csv('the_csv.csv', index_col=0)
dfa_hat.T
但我怀疑这不是你的问题。您误解了,当您调用时,DataFrame.mean()
您正在沿轴执行缩减(axis == 0
默认情况下)。
让我们看一个简单的例子:
In [272]: df = DataFrame(randn(5, 2), columns=list('ab'))
In [273]: df
Out[273]:
a b
0 0.056 -0.056
1 -0.384 1.153
2 0.524 -1.545
3 1.082 1.665
4 -0.593 -0.412
In [274]: df.mean()
Out[274]:
a 0.137
b 0.161
dtype: float64
In [275]: type(df.mean())
Out[275]: pandas.core.series.Series
请注意,index
ofdf.mean()
是columns
of df
。那是因为我减少了行数。另请注意,它type(df.mean())
等效于具有单轴的 numpy 数组,即向量。这是设计使然。当它打印到控制台时,它可能看起来像一列,但它的行为与数组几乎相同,因为它被视为列而不是行。Series
pandas
numpy
numpy
然而pandas
,Series
对象总是被视为列,除非用户明确请求行。例如,DataFrame
可以将 a 的行作为Series
对象访问(尽管这对于异构列通常效率低下)。这也是如何numpy
工作的:单独的行和列是一维数组。
因此,要回答您的问题,就像一维numpy
数组在T
被调用时会返回自身一样,Series
对象也会如此。