Python初学者问题: 我有一个X X Y形状的数据框。我想将其转换为1 x(X * Y)头文件。因此,例如下面的4x4熊猫df:
a e i m
b f j n
c g k o
d h l p
我希望输出为1x16(a,b,c,d,e,f ... o,p)。这必须是COLUMN而不是行条目。 数据帧操作是最好的方法还是应该使用numpy?我从X x Y的xls文件开始。
我的代码:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import numpy.random as nr
import math
%matplotlib inline
#Load Data & Quick Peak
hdr = pd.read_excel('header.xls', header=None)
print(hdr)
hdr.shape
答案 0 :(得分:1)
您可以像这样简单地使用melt()
:
import pandas as pd
data = {'col1': ['a', 'b', 'c', 'd'],
'col2': ['e', 'f', 'g', 'h'],
'col3': ['i', 'j', 'k', 'l'],
'col4': ['m', 'n', 'o', 'p']}
df = pd.DataFrame(data)
print(df.melt()['value'])
结果:
0 a
1 b
2 c
3 d
4 e
5 f
6 g
7 h
8 i
9 j
10 k
11 l
12 m
13 n
14 o
15 p
答案 1 :(得分:0)
您可以使用iterrows
方法遍历数据框中的每一行,并将其附加到pandas.Series
中。下面的示例代码:
x = pd.Series([])
for index, row in hdr.iterrows():
x = x.append(row)
print(x)
答案 2 :(得分:0)
根据选择重塑数据帧“ hdr”的转置可能会有所帮助。例如,
hdr = pd.read_excel('header.xls', header = None)
hdr_arr = df.T.values.reshape(1,16)
这会将数据帧转换为1x16的数组。