Data/list 与 python(ironpython) 转置

Data/list transpose with python(ironpython)

我有一个数据列表(参见图像中的顶部数据示​​例,前 3 行) 我想要格式的数据转换(某种 stranspose/stack)(参见图像中的底部数据示例)

example list transpose

必须删除进程中的空白(红色)字段。 我不知道从哪里开始。需要一些帮助。

这可以通过 pandas 轻松完成。您没有提供确切的输入文件,所以我不得不尝试复制。

import pandas as pd 
import numpy as np

df = pd.DataFrame({
    'objectType':['x', 'y'], 
    'property1':['TestA11', 'TestD11'], 
    'property2':['TestA21', 'TestD21'],
    'property3':['TestA31', ''],
    'property4':['TestA41', ''],
    'property5':['', 'TestD51'],
    'property6':['', 'TestD61'],
    'property7':['TestA71', 'TestD71'], 
    'property8':['TestA81', 'TestD81'], 
})

melted_df = pd.melt(df, id_vars=['objectType'], value_vars=list(df.columns)[1:])

输出应如下所示:

        variable     value
0   x   property1   TestA11
1   y   property1   TestD11
2   x   property2   TestA21
3   y   property2   TestD21
4   x   property3   TestA31
5   y   property3   
6   x   property4   TestA41
7   y   property4   
8   x   property5   
9   y   property5   TestD51
10  x   property6   
11  y   property6   TestD61
12  x   property7   TestA71
13  y   property7   TestD71
14  x   property8   TestA81
15  y   property8   TestD81

然后要删除空值行,您可以这样做:

clean_df = melted_df.replace('', np.nan).dropna()

谢谢你的开始。 我有简短的脚本,这就是我现在所需要的。

import pandas as pd
import numpy as np

df = pd.read_excel("data.xls", sheet_name='data')`

melted_df = pd.melt(df,id_vars=['Header col 1','Header col 2','Header col 3'])
clean_df = melted_df.replace('', np.nan).dropna()
clean_df.to_excel("clean-df.xls", sheet_name='clean data')

此脚本基于 .xls 文件