#pandas
#pandas
Вопрос:
Я пытаюсь сохранить выходные данные, которые представляют собой число, в текстовом формате в pandas после работы с набором данных.
import pandas as pd
df = pd.read_csv("sales.csv")
def HighestSales():
df.drop(['index', "month"], axis =1, inplace = True)
df2 = df.groupby("year").sum()
df2 = df2.sort_values(by = 'sales', ascending = True).reset_index()
df3 = df2.loc[11, 'year']
df4 = pd.Series(df3)
df5 = df4.iloc[0]
#*the output here is 1964 , which alone needs to be saved in the text file*.
df5.to_csv("modified.txt")
HighestSales()
Но я получаю, что объект ‘numpy.int64’ не имеет атрибута ‘to_csv’ — эта ошибка. Есть ли способ сохранить только одно значение в текстовом файле?
Комментарии:
1. вы можете преобразовать его в dataframe или pd.Series перед записью. Альтернативно, df5 — это просто значение. Вы можете записать его с помощью обычного файла записи и записи. Я вижу оба решения в разделах ответов. Один из них решит
Ответ №1:
вы можете сделать:
# open a file named modified.txt
with open('modified.txt', 'w') as f:
# df5 is just an integer of 196
# and write 1964 plus a line break
f.write(df5 'n')
Ответ №2:
Вы не можете сохранить одно значение в csv с помощью «pd.to_csv». В вашем случае вы должны снова преобразовать его в DataFrame, а затем сохранить. Если вы хотите видеть только число в файле .txt, вам нужно добавить некоторые параметры:
result = pd.DataFrame(df5)
result.to_csv('modified.txt', index=False, header=False)