glu*_*uc7 6 python excel pandas
我正在通过pd.read_html从谷歌财务中抓取表格数据,然后将这些数据保存到excel df.to_excel(),如下所示:
dfs = pd.read_html('https://www.google.com/finance?q=NASDAQ%3AGOOGL&fstype=ii&ei=9YBMWIiaLo29e83Rr9AM', flavor='html5lib')
xlWriter = pd.ExcelWriter(output.xlsx, engine='xlsxwriter')
for i, df in enumerate(dfs):
df.to_excel(xlWriter, sheet_name='Sheet{}'.format(i))
xlWriter.save()
Run Code Online (Sandbox Code Playgroud)
但是,保存到Excel的数字将存储为文本,并且单元格的角落中有一个小的绿色三角形.将这些数据移到excel时,如何将它们存储为实际值而不是文本?
jmc*_*ara 11
除了在创建或使用数据帧时将字符串数据转换为数字的其他解决方案之外,还可以使用xlsxwriter引擎选项来执行此操作:
writer = pd.ExcelWriter('output.xlsx',
engine='xlsxwriter',
options={'strings_to_numbers': True})
Run Code Online (Sandbox Code Playgroud)
来自文档:
strings_to_numbers:启用该worksheet.write()方法,在可能的情况下,使用字符串将字符串转换为数字,float()以避免出现有关"存储为文本的数字"的Excel警告.
考虑将数字列转换为浮点数,因为pd.read_html将 Web 数据读取为字符串类型(即对象)。但在转换为浮点数之前,您需要将连字符替换为 NaN:
import pandas as pd
import numpy as np
dfs = pd.read_html('https://www.google.com/finance?q=NASDAQ%3AGOOGL' +
'&fstype=ii&ei=9YBMWIiaLo29e83Rr9AM', flavor='html5lib')
xlWriter = pd.ExcelWriter('Output.xlsx', engine='xlsxwriter')
workbook = xlWriter.book
for i, df in enumerate(dfs):
for col in df.columns[1:]: # UPDATE ONLY NUMERIC COLS
df.loc[df[col] == '-', col] = np.nan # REPLACE HYPHEN WITH NaNs
df[col] = df[col].astype(float) # CONVERT TO FLOAT
df.to_excel(xlWriter, sheet_name='Sheet{}'.format(i))
xlWriter.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7283 次 |
| 最近记录: |