excel - AttributeError,使用 Pandas 从ipython写回Excel

标签 excel python-2.7 pandas error-handling

系统:
Windows 7的
Anaconda->使用2.7.12 Python的Spyder

我得到这个AttributeError:

  File "<ipython-input-4-d258b656588d>", line 1, in <module>
    runfile('C:/xxx/.spyder/pandas excel.py', wdir='C:/xxx/.spyder')

  File "C:\xxx\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
    execfile(filename, namespace)

  File "C:\xxx\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 87, in execfile
    exec(compile(scripttext, filename, 'exec'), glob, loc)

  File "C:/xxx/.spyder/pandas excel.py", line 33, in <module>
    moving_avg.to_excel(writer, sheet_name='Methodentest', startcol=12, startrow=38)

  File "C:\xxx\Anaconda2\lib\site-packages\pandas\core\generic.py", line 2672, in __getattr__
    return object.__getattribute__(self, name)

AttributeError: 'Series' object has no attribute 'to_excel'

这是我的代码:
import pandas as pd

#Adjustmend of Data for Date funtioniert nicht?
#parsen = lambda x: pd.datetime.strptime(x, '%Y-%m')

#Open new file object
xl = pd.ExcelFile('C:\xxx\Desktop\Beisspieldatensatz.xlsx')
#parse_dates={'Zeit': ['Jahr', 'Monat']}, index_col = 0,  date_parser=parsen)

#Link to specific sheet
df = xl.parse('Methodentest')

#Narrow the data input
df2 = df[['Jahr', 'Monat', 'Umsatzmenge']]

#Establishment values under the year 2015 
df3 = df2[(df2['Jahr']<2015)]

#Execute gleitender Mittelwert History 36 Month or 36 rows          
moving_avg = pd.rolling_mean(df3["Umsatzmenge"],36)
print (moving_avg.head())

#Create a pandas excel writer
writer = pd.ExcelWriter(r'C:\xxx\Desktop\Beisspieldatensatz.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
moving_avg.to_excel(writer, sheet_name='Methodentest', startcol=12, startrow=38)

# Close the Pandas Excel writer and output the Excel file.
writer.save()

我想从Excel中读取ipython中的数据集。在下一步中,我想“删除”我的数据,但这不起作用? (这就是为什么我将这一部分放在标签中的原因)。在此之后,我想做一个数学方法,例如这里下一个18个月的移动平均值,并将此信息存储在moving_average中。
我的数据集每月从01.2012开始。然后,代码必须在Excel的特定行和列中写回新图形->此处发生错误。

最佳答案

我认为您需要先将Series转换回DataFrame,然后再保存,请尝试

moving_avg.to_frame().to_excel(writer, sheet_name='Methodentest', startcol=12, startrow=38)

关于excel - AttributeError,使用 Pandas 从ipython写回Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40730175/

相关文章:

javascript - 在javascript中下载后如何打开excel文件?

excel - "range("F :F")"mean in an Excel macro? 是什么意思

python - 如何打印变量中包含的 unicode 字符串的值

python-2.7 - GAE Web 应用程序的 SSO 实现

python - Pandas :从去年的同一天获取前一年的值(value)

python - scikit-learn 线性回归索引误差

java - 内存不足错误 - 写入 Excel 时的 Java 堆空间

python - Django 单元测试失败,找不到表

python - Pandas - 将多个文本文件中的信息合并到单个数据帧中

html - 如何将数据从excel复制/粘贴到网页(VBA)?