小编Dim*_*ris的帖子

python pandas,某些列到行

我有一个pandas数据帧,有4行和4列 - 这里是简单的版本:

import pandas as pd
import numpy as np
rows = np.arange(1, 4, 1)
values = np.arange(1, 17).reshape(4,4)
df = pd.DataFrame(values, index=rows, columns=['A', 'B', 'C', 'D'])
Run Code Online (Sandbox Code Playgroud)

我想要做的是将其转换为2*8数据帧,每个数组都有B,C和D alligng - 所以它看起来像这样:

1  2 
1  3
1  4
5  6
5  7
5  8
9  10
9  11
9  12
13 14
13 15
13 16
Run Code Online (Sandbox Code Playgroud)

阅读熊猫文档我试过这个:

df1 = pd.pivot_table(df, rows = ['B', 'C', 'D'], cols = 'A')
Run Code Online (Sandbox Code Playgroud)

但是给我一个错误,我无法确定来源(以...结尾)

DataError:无需聚合的数字类型

)

接下来我想基于A值拆分数据帧,但我认为.groupby命令可能会处理它

python pandas

5
推荐指数
1
解决办法
4739
查看次数

python pandas复数

我正在使用pandas,它可以非常有效地按照我需要的方式对数据进行排序/过滤.

此代码工作正常,直到我将最后一列更改为复数; 现在我收到一个错误.

return self._cython_agg_general('mean')引发DataError('无数字类型聚合')pandas.core.groupby.DataError:没有要聚合的数字类型

错误是指我的第八列(带有复数),因为我想要平均值我无法找到将对象转换为复数的方法(从我理解的熊猫现在支持复数).

这是我使用的代码.

import numpy as np
import pandas as pd
df = pd.read_csv('final.dat', sep=",", header=None)
df.columns=['X.1', 'X.2', 'X.3', 'X.4','X.5', 'X.6', 'X.7', 'X.8']
df1 = df.groupby(["X.1","X.2","X.5"])["X.8"].mean().reset_index()
Run Code Online (Sandbox Code Playgroud)

之后我得到上述错误.

当我读取我的文件时,这是df输出.

<class 'pandas.core.frame.DataFrame'>
Int64Index: 21266 entries, 0 to 21265
Data columns (total 8 columns):
X.1    21266  non-null values
X.2    21266  non-null values
X.3    21266  non-null values
X.4    21266  non-null values
X.5    21266  non-null values
X.6    21266  non-null values
X.7    21266  non-null values
X.8    21266  non-null values
dtypes: float64(4), int64(3), …
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
4060
查看次数

标签 统计

pandas ×2

python ×2