0

我很难使用通过 pandas 和 scipy 提供的转置函数:

我的问题是我将保存到包含多行的单列中的 csv 文件中,而实际上它应该是相反的方式(多列和单行)。

这是我正在使用的(基于熊猫设置的平均值 - “pd”):

mid = pd.read_csv("Experiment12.csv",usecols=[0,1,2],skiprows=[0,1,2,3,4,5,6,7]).mean()

mid.T熊猫这样的功能吗?

我没有收到任何错误,并且在检查结果时没有任何变化,我仍然有单列,其中包含行中的所有值。

感谢您的任何见解。

4

1 回答 1

1

您可以使用单个列进行读写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

请注意,indexofdf.mean()columnsof df。那是因为我减少了行数。另请注意,它type(df.mean())等效于具有单轴的 numpy 数组,即向量。这是设计使然。当它打印到控制台时,它可能看起来像一列,但它的行为与数组几乎相同,因为它被视为列而不是行。Seriespandasnumpynumpy

然而pandasSeries对象总是被视为列,除非用户明确请求行。例如,DataFrame可以将 a 的行作为Series对象访问(尽管这对于异构列通常效率低下)。这也是如何numpy工作的:单独的行和列是一维数组。

因此,要回答您的问题,就像一维numpy数组在T被调用时会返回自身一样,Series对象也会如此。

于 2013-08-18T06:03:05.317 回答