Python 如何将整行更改为列标题?请给我一些建议
我的最终输出如下所示:Python 如何将整行更改为列标题?请给我一些建议,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我的最终输出如下所示: 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: retu
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)
Like id是一行,值是一行
现在我需要将整个id行放入列标题中如何才能做到这一点…建议我如何相应地编辑代码
如果可能,请编辑并张贴在此处,这将很有帮助……您可以使用:
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行是什么,都将是列标题,比如1 2 3 4 5 6 7。。。。所有内容都是列标题,值行将是第一行我不明白它会将第一整行更改为第二行的列标题?@user11646543是的。如果将
id
行转换为列标题,并将值设置为df.drop后的第一行('id',axis=0,inplace=True),则我正在尝试打印df,它显示为无。请告知我此df.columns索引([1、2、3、4、5、6、7、8、9],dtype='object')它不仅包含9个元素,还有190个元素,例如,我给了10个元素,所以我不能通过键入tell me以任何其他方式创建这些元素作为列标题,我不明白这一行我应该在我的代码中包含这些代码吗?都德。。。。你只需要前两行。它所做的只是将第一行设置为列标题,然后将其删除。您只需将这两行放在代码的末尾
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')