Не создавая CSV-файл, он должен - PullRequest
0 голосов
/ 23 июня 2018

Я хочу получить CSV-файл, подобный следующему:

index,Basic Mechanics,Basic Thermodynamics,Calculus I,Calculus II,Chemistry I,Chemistry II,Engineering Drawing,Fundamentals of Informatics,Geometry,Linear Algebra
ATTEMPTS,1.416,1.404,1.421,1.347,1.305,1.246,1.261,1.456,1.325,1.385

У меня есть следующий код:

attempts=pd.read_csv("attempts.csv",sep=',', delimiter=None, header='infer')
a2=attempts[(attempts["HSCHOOL"]=="hs1")]
df=a2[["Subject","ATTEMPTS"]]
def subjects_hs(df):
    df=df.pivot_table(columns="Subject",values="ATTEMPTS")
    df=df.reset_index()
    df=df.round(decimals=3)
    df.to_csv("attempts_hs.csv",index=False)

Где попытки .csv выглядит так:

AC_YEAR,HSCHOOL,Subject,ATTEMPTS
2010,hs1,Linear Algebra,2
2010,hs1,Calculus I,1
2010,hs1,Basic Mechanics,2
2010,hs1,Chemistry I,2
2010,hs3,Fundamentals of Informatics,2
2010,hs2,Calculus II,1
2010,hs1,Basic Thermodynamics,1
2010,hs3,Linear Algebra,1
2010,hs3,Calculus I,1
2010,hs2,Basic Mechanics,1
2010,hs2,Chemistry I,1
2010,hs2,Fundamentals of Informatics,1

И вместо этого я получаю следующий файл:

Subject,ATTEMPTS
Basic Mechanics,1.545
Basic Thermodynamics,1.667
Calculus I,1.545
Calculus II,1.545
Chemistry I,1.667
Chemistry II,1.4
Engineering Drawing,1.692
Fundamentals of Informatics,2.0
Geometry,1.583
Linear Algebra,1.5

Это не тот формат, который я ищу (я хочу, чтобы все было в одной строке!).Когда я пытаюсь это в Python нормально, он работает, но когда в Python, нигде нет ... Есть идеи?Спасибо!

1 Ответ

0 голосов
/ 23 июня 2018

Кажется, у меня работает следующий код

attempts=pd.read_csv("attempts.csv",sep=',', delimiter=None, header='infer')
a2=attempts[(attempts["HSCHOOL"]=="hs1")]
df=a2[["Subject","ATTEMPTS"]]
def subjects_hs(df):
    df=df.pivot_table(columns="Subject",values=["ATTEMPTS"])
    df=df.reset_index()
    df=df.round(decimals=3)
    df.to_csv("attempts_hs.csv",index=False)

pivot_table обеспечивает ожидаемое поведение, когда его аргумент 'values' является списком.

строка 5: изменить values="ATTEMPTS" на values=["ATTEMPTS"]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...