相关疑难解决方法(0)

DataFrame中的字符串,但dtype是对象

为什么Pandas告诉我我有对象,尽管所选列中的每个项都是一个字符串 - 即使在显式转换之后也是如此.

这是我的DataFrame:

<class 'pandas.core.frame.DataFrame'>
Int64Index: 56992 entries, 0 to 56991
Data columns (total 7 columns):
id            56992  non-null values
attr1         56992  non-null values
attr2         56992  non-null values
attr3         56992  non-null values
attr4         56992  non-null values
attr5         56992  non-null values
attr6         56992  non-null values
dtypes: int64(2), object(5)
Run Code Online (Sandbox Code Playgroud)

其中五个是dtype object.我明确地将这些对象转换为字符串:

for c in df.columns:
    if df[c].dtype == object:
        print "convert ", df[c].name, " to string"
        df[c] = df[c].astype(str)
Run Code Online (Sandbox Code Playgroud)

然后,df["attr2"]仍然有dtype object,虽然type(df["attr2"].ix[0]揭示str,这是正确的. …

python types numpy series pandas

86
推荐指数
4
解决办法
4万
查看次数

如何将Excel工作表另存为CSV

我想编写一个Python脚本,该脚本读入Excel电子表格并将其部分工作表保存为CSV文件.

我怎样才能做到这一点?

我找到了用于从Python读取和编写Excel文件的第三方模块,但据我所知,它们只能以Excel(即*.xls)格式保存文件.如果我在这里错了,一些示例代码显示如何做我正在尝试用这些模块做的事情将不胜感激.

我也遇到了一个我无法理解的解决方案,但似乎是特定于Windows的,因此无论如何都不会帮助我,因为我想在Unix中这样做.无论如何,我不清楚这个解决方案可以扩展到我想做的事情,即使在Windows下也是如此.

python csv excel

18
推荐指数
4
解决办法
5万
查看次数

由于数字格式为文本,将 Excel 文件读取到 Python 失败

我有大量 Excel 文件,每个文件都有一列,其中数字格式为文本。Excel 给出错误“此单元格中的数字格式为文本或前面带有撇号” - 请参阅第三列,其中单元格有一个绿色三角形。

在此输入图像描述

我的目标是在 Pandas 中打开所有这些文件,而不必手动打开每个文件并将列转换为数字。但是,pd.read_excel() 失败并出现以下xlrd错误:

XLRDError: ZIP file contents not a known type of workbook
Run Code Online (Sandbox Code Playgroud)

毫不奇怪,当我xlrd直接使用时:wb = xlrd.open_workbook(filename)我得到同样的错误。

我还尝试了 openpyxl: wb = openpyxl.load_workbook(filename),它给了我这个:

KeyError: "There is no item named 'xl/_rels/workbook.xml.rels' in the archive"
Run Code Online (Sandbox Code Playgroud)

我确认,如果我手动将列转换为 Excel 中的数字并重新保存工作簿,则 pandas (xlrd) 和 openpyxl 都可以打开该文件。

有人有什么想法吗?

excel vba xlrd pandas openpyxl

5
推荐指数
1
解决办法
5141
查看次数

Pandas ExcelFile 将列读取为字符串

我知道您可以在读取 Excel 时指定数据类型pd.read_excel(如此处所述。你能用 做同样的事情pd.ExcelFile吗?

我有以下代码:

 if ".xls" in 
     xl = pd.ExcelFile(path + "\\" + name, )
     for sheet in xl.sheet_names:
         xl_parsed = xl.parse(sheet)
Run Code Online (Sandbox Code Playgroud)

解析工作表时,列中的某些值以科学计数法显示。我在加载之前不知道列名称,因此我需要将所有内容导入为字符串。理想情况下,我希望能够做类似的事情xl_parsed = xl.parse(sheet, dtype = str)。有什么建议么?

python dataframe pandas

5
推荐指数
1
解决办法
7370
查看次数

如何在读取Excel文件时停止Python自动日期解析

我需要读取 Excel 文件而不更改任何日期、时间格式、浮点格式并转换为数据框。如果我将 Excel 转换为 CSV 并使用 read_csv() 读取它,则效果很好。

例如:

import pandas as pd
import numpy as np
#code for reading excel
df=pd.read_excel("605.xlsx",parse_dates=False,sheet_name="Group 1",keep_default_na=False,dtype=str)
print("df_excel:")
#code for reading csv   

df1=pd.read_csv("Group 1.csv",parse_dates=False,dtype=str,na_filter = False)
 print("df_csv:",df1)
Run Code Online (Sandbox Code Playgroud)

输出: 在此输入图像描述

在上面的代码中,parse_dates=False 在读取 CSV 文件时工作正常,但 parse_dates=False 在 read_excel() 中不起作用

预期输出: 需要将精确的 Excel 数据放入数据框中,而不更改日期、时间格式。

python datetime python-3.x pandas xlwings

5
推荐指数
1
解决办法
3865
查看次数

Pandas read_excel 函数忽略 dtype

我正在尝试使用 pd.read_excel() 读取 excel 文件。excel 文件有 2 列日期和时间,我想将这两列读取为 str 而不是 excel dtype。

excel文件示例

excel文件示例

我试图指定 dtype 或转换器参数无济于事。

df = pd.read_excel('xls_test.xlsx',
                   dtype={'Date':str,'Time':str})
df.dtypes
Date    object
Time    object
dtype: object
Run Code Online (Sandbox Code Playgroud)
df.head()
Date    Time
0   2020-03-08 00:00:00 10:00:00
1   2020-03-09 00:00:00 11:00:00
2   2020-03-10 00:00:00 12:00:00
3   2020-03-11 00:00:00 13:00:00
4   2020-03-12 00:00:00 14:00:00

Run Code Online (Sandbox Code Playgroud)

如您所见,Date 列不被视为 str...

使用转换器时同样的事情

df = pd.read_excel('xls_test.xlsx',
                   converters={'Date':str,'Time':str})
df.dtypes
Date    object
Time    object
dtype: object
Run Code Online (Sandbox Code Playgroud)
df.head()
Date    Time
0   2020-03-08 00:00:00 10:00:00
1   2020-03-09 00:00:00 11:00:00
2   2020-03-10 00:00:00 12:00:00 …
Run Code Online (Sandbox Code Playgroud)

python excel pandas

5
推荐指数
1
解决办法
213
查看次数

Pandas Read_Excel日期时间转换器

使用Python 3.6和Pandas 0.19.2:如何读取excel文件并将列直接更改为日期时间read_excel?与此问题类似,关于转换器和dtypes.但我想在某一栏中读到datetime

我想改变这个:

import pandas as pd
import datetime
import numpy as np

file = 'PATH_HERE'

df1 = pd.read_excel(file)

df1['COLUMN'] = pd.to_datetime(df1['COLUMN']) # <--- Line to get rid of
Run Code Online (Sandbox Code Playgroud)

变成这样的东西: df1 = pd.read_excel(file, dtypes= {'COLUMN': datetime})

代码没有错误,但在我的例子中,COLUMN仍然是int64调用后的dtypeprint(df1['COLUMN'].dtype)

我试过用np.datetime64而不是datetime.我也尝试过使用 converters=而不是dtypes=无济于事.这可能是挑剔,但在我的代码中实现将是一个很好的功能.

python datetime pandas

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

pandas ×6

python ×6

excel ×3

datetime ×2

csv ×1

dataframe ×1

numpy ×1

openpyxl ×1

python-3.x ×1

series ×1

types ×1

vba ×1

xlrd ×1

xlwings ×1