Python 如何将数据帧的值用作列,并有选择地将值放入其中?
我刚开始使用熊猫数据帧,实际上我遇到了一个问题 我有一个主字典,它基本上是代码中的一个数据帧,如下所示:Python 如何将数据帧的值用作列,并有选择地将值放入其中?,python,pandas,dataframe,Python,Pandas,Dataframe,我刚开始使用熊猫数据帧,实际上我遇到了一个问题 我有一个主字典,它基本上是代码中的一个数据帧,如下所示: A B ATTR VAL AA BB type circular AA BB size 2mm AA BB shape square AA BB tip bend 我将提供一个字符串,该字符串将检查此数据帧,并选择单词并返回一个类似以下内容的输出: A
A B ATTR VAL
AA BB type circular
AA BB size 2mm
AA BB shape square
AA BB tip bend
我将提供一个字符串,该字符串将检查此数据帧,并选择单词并返回一个类似以下内容的输出:
A B type size shape tip
AA BB circular 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
在这之后,我陷入了困境,我知道这可能很容易,但由于我是新手,我在构建这一点上有点困难。您可以使用:
或:
两者都将产生预期的产出。但是,请注意,跨越A
、B
和ATTR
列的重复项(即这三列都具有相同值的多行)可能会产生不需要的结果
df.set_index(['A','B', 'ATTR']).unstack('ATTR')
df.pivot_table(index=['A', 'B'], columns='VAL', values='ATTR', aggfunc='first')