首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分单列数据帧

拆分单列数据帧
EN

Stack Overflow用户
提问于 2019-09-21 02:26:22
回答 2查看 48关注 0票数 0

我有一个数据帧,看起来像这样:

代码语言:javascript
复制
    statistics
0      2013-08
1            4
2            8
3      2013-09
4            7
5           13
6      2013-10
7            2
8           10

我需要它看起来像这样:

代码语言:javascript
复制
    statistics   X  Y
0      2013-08   4  8
1      2013-09   7  13
2      2013-10   2  10

找到一种不依赖于行数的方法会很有用,因为我想在循环中使用它,而原始行数可能会发生变化。但是,输出应始终包含以下3列

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-21 02:50:21

您正在做的不是解除堆栈操作,您正在尝试进行重塑。您可以通过使用numpy的重塑方法来完成此操作。变量n_cols是您要查找的列数。

下面是一个示例:

代码语言:javascript
复制
df = pd.DataFrame(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'], columns=['col'])
df
  col
0   A
1   B
2   C
3   D
4   E
5   F
6   G
7   H
8   I
9    J
10   K
11   L

n_cols = 3
pd.DataFrame(df.values.reshape(int(len(df)/n_cols), n_cols))
   0  1  2
0  A  B  C
1  D  E  F
2  G  H  I
3  J  K  L
票数 1
EN

Stack Overflow用户

发布于 2019-09-21 02:59:16

代码语言:javascript
复制
import pandas as pd

data = pd.read_csv('data6.csv')
x=[]
y=[]
statistics= []
for i in range(0,len(data)):
    if i%3==0:
        statistics.append(data['statistics'][i])
    elif i%3==1:
        x.append(data['statistics'][i])
    elif i%3 == 2:
        y.append(data['statistics'][i])
data1 = pd.DataFrame({'statistics':statistics,'x':x,'y':y})
data1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58033502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档