我是刚开始使用熊猫数据框,但实际上我遇到了一个问题。我有一个数据框,看起来像这样:
Name SubName ATTR VAL
GSKT SW type circular
GSKT SW size 2mm
GSKT SW shape square
GSKT SW tip bend
GST WW shape square
GST WW tip tilt
GST WW size 3mm
我有一个字符串,它将在此数据帧中查找并拾取单词。我用来在数据帧中查找的字符串是这样的:
GSKT SW方形2mm圆形弯头 1st弦
GST WW方形3mm倾斜第二根弦
在给定第一个字符串并在上面提到的数据帧中查找时,我想要得到这样的输出:
Name SubName type size shape tip
GSKT SW circular 3mm square tilt
在给定第二个字符串并通过上述数据框进行查找时,我想获得如下输出:
Name SubName type size shape tip
GST WW Nan 2mm square bend
我将对大量数据进行此操作,但是现在我正在这个小子集上进行尝试。
这是我当前的代码:
main_dict = pd.read_excel('File.xlsx')
header = main_dict.iloc[:,0:2]
data = main_dict.iloc[:,2:4]
matr_desc = "AA BB 2mm circular bend".split()
for i,j in enumerate(main_dict['Attribute']):
for k,l in enumerate(main_dict['Values']):
print(l)
header[j][k] = l
main_dict.pivot_table(index=['Name', 'Subname'], columns='ATTR',
values='VAL', aggfunc='first')
在此之后,我被困住了,我知道这可能很容易,但是由于我是新手,因此在构造它时遇到了一些困难。
我为此获得的输出被附加在图像部分(Output_heading)中。我需要的输出结构也附在下面的部分中。
基本上基于输入字符串,我需要根据上述数据框找到一个ATTR-VAL对。
示例输出类型也在上面发布,为方便起见再次提及: 第一个字符串:
Name SubName type size shape tip
GSKT SW circular 2mm square bend
第二个字符串:
Name SubName type size shape tip
GST WW Nan 2mm square bend
答案 0 :(得分:1)
尝试:
df.ATTR=pd.Categorical(df.ATTR,['type','size','shape','tip'],ordered=True)
df.pivot_table(index=['Name','SubName'],columns=['ATTR'],values='VAL',
aggfunc='first')
ATTR type size shape tip
Name SubName
GST SAP circular 2mm square bend