我使用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)
读取你的数据