如何将整行更改为列标题?请告诉我这件事

2024-04-25 23:49:56 发布

您现在位置:Python中文网/ 问答频道 /正文

class Decoder(json.JSONDecoder):

    def decode(self, s):
        result = super(Decoder, self).decode(s)
        return self._decode(result)

    def _decode(self, o):
        if isinstance(o, str):
            try:
                return int(o)
            except ValueError:
                try:
                    return float(o)
                except ValueError:
                    return o
        elif isinstance(o, dict):
            return {k: self._decode(v) for k, v in o.items()}
        elif isinstance(o, list):
            return [self._decode(v) for v in o]
        else:
            return o

with open('ouput_data.json') as f:
    data=json.load(f,cls=Decoder)
#print(data)
list=[]
list=(data['data'])
df = pd.DataFrame(list,columns=['id','value'])
support_df = pd.DataFrame({'id':range(1,10),'value_aux':''})
final_df = support_df.merge(df,how='left')
final_df['value'] = np.where(final_df['value'].isna(),final_df['value_aux'],final_df['value'])
#print(final_df)
final_df = final_df.drop(columns='value_aux')
#final_df=final_df.drop(['id'],axis=1)
final_df=final_df.T
print(final_df)

我的最终输出如下所示:

        0   1  2  3          4        5  6  7  8
id      1   2  3  4          5        6  7  8  9
value  NY  11     D  531293696  5202013         

就像id是一行,值是一行

现在我需要将整个id行放入列标题中我该如何做…建议我如何相应地编辑代码

如果可能,请编辑和张贴在这里,这将是有益的


Tags: selfidjsondfdatareturnvaluedef
1条回答
网友
1楼 · 发布于 2024-04-25 23:49:56

您可以使用:

df.columns = df.loc['id',:].values
df.drop('id', axis=0, inplace=True)

df
        1   2  3          4        5    6    7    8    9
value  NY  11  D  531293696  5202013  NaN  NaN  NaN  NaN

df.columns
Index([1, 2, 3, 4, 5, 6, 7, 8, 9], dtype='object')

相关问题 更多 >