我的datafarme输入如下,我想转换为输出格式
A B C D E F
Fruits apple val1 val2 NaN val4
Fruits mango val1 val2 NaN val4
Fruits jack fruit val1 val2 NaN val4
Fruits pomegranate val1 val2 NaN NaN
Fruits kiwi val1 val2 NaN NaN
Fruits plum val1 val2 val3 NaN
Fruits banana val1 val2 val3 NaN
Fruits grapes val1 val2 val3 NaN
output:
-------
Fruits apple val1
Fruits mango val1
Fruits jack fruit val1
Fruits pomegranate val1
Fruits kiwi val1
Fruits plum val1
Fruits banana val1
Fruits grapes val1
Fruits apple val2
Fruits mango val2
Fruits jack fruit val2
Fruits pomegranate val2
Fruits kiwi val2
Fruits plum val2
Fruits banana val2
Fruits grapes val2
Fruits plum val3
Fruits banana val3
Fruits grapes val3
Fruits apple val4
Fruits mango val4
Fruits jack fruit val4
并且我需要使用熊猫来根据列中的值创建单独的行。
答案 0 :(得分:0)
您可以使用pd.melt
d = df.melt(["A", "B"], ["C", "D", "E", "F"])
d.drop('variable', axis=1, inplace=True)
d.dropna()
输出:
A B value
0 Fruits apple val1
1 Fruits mango val1
2 Fruits jackfruit val1
3 Fruits pomegranate val1
4 Fruits kiwi val1
5 Fruits plum val1
6 Fruits banana val1
7 Fruits grapes val1
8 Fruits apple val2
9 Fruits mango val2
10 Fruits jackfruit val2
11 Fruits pomegranate val2
12 Fruits kiwi val2
13 Fruits plum val2
14 Fruits banana val2
15 Fruits grapes val2
21 Fruits plum val3
22 Fruits banana val3
23 Fruits grapes val3
24 Fruits apple val4
25 Fruits mango val4
26 Fruits jackfruit val4
答案 1 :(得分:0)
您可以使用set_index
,然后使用stack
df.set_index(['A', 'B']).stack().reset_index()
答案 2 :(得分:0)
使用此:
l1 = [ df[['A','B',i]].rename(columns={i:'value'}) for i in ['C','D','E','F']]
df1 = pd.DataFrame()
for i in l1:
df1 = df1.append(i)
df1 = df1[~pd.isnull(df1['value'])].reset_index(drop=True)
输出:
A B value
0 Fruits apple val1
1 Fruits mango val1
2 Fruits jack fruit val1
3 Fruits pomegranate val1
4 Fruits kiwi val1
5 Fruits plum val1
6 Fruits banana val1
7 Fruits grapes val1
8 Fruits apple val2
9 Fruits mango val2
10 Fruits jack fruit val2
11 Fruits pomegranate val2
12 Fruits kiwi val2
13 Fruits plum val2
14 Fruits banana val2
15 Fruits grapes val2
16 Fruits plum val3
17 Fruits banana val3
18 Fruits grapes val3
19 Fruits apple val4
20 Fruits mango val4
21 Fruits jack fruit val4