如何将列标题值转换为日期值,并将原始值转换为其自己的名为值的列



我使用Python/Pandas。我接收到的输出格式是这样的实际日期值在csv

的列头输入图片描述

我需要它是在这个格式,有一个列"日期"one_answers";value"保存数据

输入图片描述

我试图使用熊猫,但我不确定究竟如何转置这个csv

实际上您可以使用DataFrame的melt方法,通过选择哪些列将保留,哪些列必须设置为值

import pandas as pd
df = pd.DataFrame.from_dict({'name': ['Profit', 'Loss'],
'Account Code': ['ABC', 'DEF'],
'Level Name': ['Winner', 'Loser'],
'01/2022': [100, 200],
'02/2022': [300, 400],
'03/2022': [500, 600]})
df2 = df.melt(id_vars=['name', 'Account Code', 'Level Name',],
var_name="Date",
value_name="Value").sort_values(by=['name', 'Account Code', 'Level Name',])

希望有帮助

这应该会产生您想要的结果。如果你需要更多的说明,请告诉我

import pandas as pd
from datetime import datetime
df = pd.DataFrame({'Name':['Profit', 'Loss'],
'Account Code':['ABC', 'DEF'],
'Level Name':['Winner', 'Loser'],
'01/2022':['100', '200'],
'02/2022':['300', '400']})
new_df_dict = {'Name':[],
'Account Code' :[],
'Level Name':[],
'Value' : [],
'Date':[]}
for i in range(len(df['Name'])):
for date_ in df.columns.values[list(df.columns.values).index('Level Name')+1:]:
new_df_dict['Name'].append(df['Name'][i])
new_df_dict['Account Code'].append(df['Account Code'][i])
new_df_dict['Level Name'].append(df['Name'][i])
new_df_dict['Value'].append(df[date_][i])
new_df_dict['Date'].append(date_)

for dt in range(len(new_df_dict['Date'])):
new_df_dict['Date'][dt] = datetime.strptime(new_df_dict['Date'][dt], '%m/%Y')
new_df = pd.DataFrame(new_df_dict)

**可以使用

df = pd.read_csv(filepath)

读取你的数据

相关内容

最新更新