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 文件
我有一个数据列表(参见图像中的顶部数据示例,前 3 行) 我想要格式的数据转换(某种 stranspose/stack)(参见图像中的底部数据示例)
必须删除进程中的空白(红色)字段。 我不知道从哪里开始。需要一些帮助。
这可以通过 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 文件