Home > Blockchain >  AttributeError: 'tuple' object has no attribute 'values' getting error while con
AttributeError: 'tuple' object has no attribute 'values' getting error while con

Time:11-14

I'm trying the function to create the single dataframe using convert_df using pandas showing following error. I have to dataframe df, df1 want to convert into single dataframe


df = {1 : {'tp': 26, 'fp': 112},
2 : {'tp': 26, 'fp': 91},
3 : {'tp': 23, 'fp': 74}}

df1 = {1 : {'tp1': 2633'fp': 34},
2 : {'tp1': 333, 'fp': 9341},
3 : {'tp1': 335, 'fp1': 34}}

def convert_df(*dic):
    df = pd.DataFrame.from_dict(dic,orient='index')
    
    return df
d, d1 = convert_df([df,df1])

the error is enter image description here

expected output like enter image description here

CodePudding user response:

Not sure what you exactly want, but if I guess correctly:

d1 = {1 : {'tp': 26, 'fp': 112},
      2 : {'tp': 26, 'fp': 91},
      3 : {'tp': 23, 'fp': 74}}

d2 = {1 : {'tp': 2633, 'fp': 34},
      2 : {'tp': 333, 'fp': 9341},
      3 : {'tp': 335, 'fp': 34}}

dicts = [d1, d2]

def convert_df(dic):
    return pd.DataFrame.from_dict(dic, orient='index')

df = pd.concat([convert_df(d) for d in dicts])
# or
# df = pd.concat(map(convert_df, dicts), axis=1)

print(df)

Or maybe:

def convert_df(*dicts):
    return pd.concat([pd.DataFrame.from_dict(d, orient='index')
                      for d in dicts], axis=1)

df = convert_df(dicts)

output:

   tp   fp    tp    fp
1  26  112  2633    34
2  26   91   333  9341
3  23   74   335    34
  • Related