如何将数据框的值用作列并将值选择性地放入其中?

时间:2019-05-03 05:19:35

标签: python pandas dataframe

我刚开始使用熊猫数据框,但实际上我遇到了问题。

我有一个主字典,基本上是代码中的一个数据帧,看起来像这样:

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

在此之后,我被困住了,我知道这可能很容易,但是由于我是新手,因此在构造它时遇到了一些困难。

1 个答案:

答案 0 :(得分:4)

您可以使用unstack

df.set_index(['A','B', 'ATTR']).unstack('ATTR')

pivot_table

df.pivot_table(index=['A', 'B'], columns='VAL', values='ATTR', aggfunc='first')

两者都会产生预期的输出。但是,请注意,跨越ABATTR列(即多行,其中这三列均具有相同值)的重复项可能会产生不良结果。