将dataframe的列合并到新的datafram中

2024-05-01 15:15:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉pandas,正在与{a2}一起工作。我正在查看Merge,Join,Concatenate的文档,它可能正盯着我看,但我仍然无法按我需要的方式转换数据。在

我有这样的数据(R行x 4302列):

| w:350 |       r:350 | w:351 |   r:351 |  ...  | w:2499 |      r:2499 | w:2500 |  r:2500 |
-------------------------------------------------------------------------------------------
|   350 | -3.0998e-04 |   351 |  0.0001 |  ...  |   2499 | -3.6000e-05 |   2500 |  0.0004 |
|   350 | -1.8316e-03 |   351 | -0.0008 |  ...  |   2499 | -3.1124e-04 |   2500 | -0.0004 |
|   350 | -1.0520e-03 |   351 | -0.0014 |  ...  |   2499 |  4.0166e-04 |   2500 |  0.0012 |
|   350 | -3.4060e-04 |   351 |  0.0006 |  ...  |   2499 |  1.2782e-03 |   2500 |  0.0012 |

我想要这样(X行X 2列):

^{pr2}$

我想你可以把它看作是一个由多组x,y数据组成的数据帧,我想把它组合成一个由一组x,y数据组成的数据帧。或者换句话说,每一行当前都是x,y数据的一个图形。我需要所有图形的x,y数据的一个集合。在

我已经尝试过了,但它不起作用(可能是因为列名的名称不一样)。这也可能不是我想做的事情最有效的方法。这里output是我的原始数据,outputxy是我想要的转置数据。在

outputxy = pandas.DataFrame()
for i in range(0, len(output.columns), 2):
    outputxy = pandas.concat([output.iloc[:, i:i+2], outputxy])

提前感谢您的帮助!在


Tags: 数据方法文档名称a2图形pandasoutput
3条回答

可以使用熔滴法,如下所示

df =  '''
w1  r1 w2 r2
1  14 4  23
2  15 5 32
3  16 6 33
'''

df1 = pd.DataFrame()
df1['X'] = pd.melt(df.iloc[:,::2]).drop('variable',1)
df1['Y'] = pd.melt(df.iloc[:,1::2]).drop('variable',1)

print df1

  X   Y
0  1  14
1  2  15
2  3  16
3  4  23
4  5  32
5  6  33

您可以使用以下模糊名称命名列:

['X': [ output.iloc[:, i:i+1]],'Y': [ [ output.iloc[:, i+1:i+2]]

您还可以放置一个包含行数的索引。在

我们可以使用^{},如果你需要列名是x,y,你可以^{}

注:此方法不需要列的顺序。在

pd.wide_to_long(df.reset_index(),stubnames=['w','r'],i='index',j='drop',sep=':').reset_index(drop=True)
Out[205]: 
     w         r
0  350 -0.000310
1  350 -0.001832
2  350 -0.001052
3  350 -0.000341
4  351  0.000100
5  351 -0.000800
6  351 -0.001400
7  351  0.000600

相关问题 更多 >