#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
По сути, это основная часть кода, касающаяся проблемы:
df1 = pandas.read_csv('~/Dropbox/data/anand/surface/scan/7/relaxed/dos/DOSCAR',skiprows=5, names=['energy','su' , 'sd','pu' ,'pd' ,'du' ,'dd' ],delimiter='s ',engine='python')
#Remove the two lines but I want to keep the 1st one only
#it is why I change the value to 1 () instead of being 1!
df1.iat[0,1]=1
df=df1[df1.su != enmin ]
df=df1[df1.energy != enmin ]
df1=None
df.to_csv(r'~/df', header=None, index=None, sep=' ',mode='a')
df=df.reset_index(drop=True)
а затем я просто получаю доступ к некоторым значениям df через df.iat[,]
На самом деле номер строки 6000 соответствует строке, которую я хотел сохранить и которая должна быть расположена в начале текста. Это похоже на неправильное расположение / инвертирование порядка.
Я пытался открыть его также с помощью vim, но с той же проблемой, и я уверен, что окно dataframe на python является правильным. Обратите внимание, что gedit и другие текстовые редакторы начинаются со строки с номером 1, а фрейм данных начинается с нуля.
Ответ №1:
Ошибка возникла из-за того, что вторая операция удаления df не учитывает первую, поскольку вы снова переписываете совершенно новый фрейм данных из df1, а не из предыдущего df.