Python 从浮点64转换为整数时出现语法错误
我试图在pandas中使用excel数据,并且必须将float64数据转换为整数类型,但我不断遇到语法错误。请注意,我是编程语言的完全新手,因此我希望得到尽可能多的帮助-我花了一周时间才弄清楚如何在pandas中打开我的excel文件,现在我在将其转换为matplotlib中可以使用的格式时遇到了问题。我使用的代码如下,所以我希望有人能帮助我Python 从浮点64转换为整数时出现语法错误,python,pandas,Python,Pandas,我试图在pandas中使用excel数据,并且必须将float64数据转换为整数类型,但我不断遇到语法错误。请注意,我是编程语言的完全新手,因此我希望得到尽可能多的帮助-我花了一周时间才弄清楚如何在pandas中打开我的excel文件,现在我在将其转换为matplotlib中可以使用的格式时遇到了问题。我使用的代码如下,所以我希望有人能帮助我 from pandas import ExcelFile import pandas as pd # Create ExcelFile object xl
from pandas import ExcelFile
import pandas as pd
# Create ExcelFile object
xlsx = ExcelFile('filename.xlsx')
xlsx.parse(sheetname, parse_cols=6, index_col=None, na_values= ['NA']
# Convert float data types to integer
Spectral Type = Spectral Type.astype('int')
当我运行此命令时,我得到:
Spectral Type = Spectral Type.astype('int')
^
SyntaxError: invalid syntax
我做错了什么
是否有更好的方法访问和使用Excel数据,以便在matplotlib中创建图形
关于我对unutbu的评论,我的数据如下:
Type Value1 time1 Value2 time2 Value3 time3
M0 8.87 41.11 8.41 41.11 8.16 65.78;
继续从M1到M6的值:
M6 13.95 4392.03 14.41 10395.13 14.66 25988.32
运行脚本:
`from pandas import ExcelFile`
`import pandas as pd`
`# Create ExcelFile object`
`xlsx = ExcelFile('filename.xlsx')`
`xlsx.parse(sheetname', parse_cols=6, index_col=None, na_values= ['NA'])`
`df`
(添加解析操作中指定的列名)
返回以下输出:
int64索引:11个条目,0到10个
数据列:
光谱类型10非空值
限幅(1.3“)10个非空值
曝光时间@1.3“,秒10非空值
限幅(2.0“)10个非空值
曝光时间@2.0“,第10秒非空值
限幅(2.5“)10个非空值
曝光时间@2.5“,秒10非空值
d类型:浮点64(6),对象(1)`
因此,我现在需要问的问题是:
如果
spectrum Type
是xlsx
中的列名,请尝试:
import pandas as pd
# Create ExcelFile object
xlsx = pd.ExcelFile('filename.xlsx')
df = xlsx.parse('sheetname', parse_cols=6, index_col=None, na_values= ['NA'])
光谱类型
列
df['Spectral Type']
属于数据类型对象
,包含值,如M0
。这些可能是字符串。无论何种情况,数据类型都无法转换为int
。这就是为什么
df['Spectral Type'] = df['Spectral Type'].astype('int')
他犯了一个错误。如果您希望将一列数据类型float
转换为int
,则
df['Limiting magnitude (1.3")'] = df['Limiting magnitude (1.3")'].astype('int')
如果列的名称正确的话
是否有必要更改限幅和限幅的数据类型 曝光时间列,假设数据是十进制数 在您发布的输出结束时,pandas报告
dtypes: float64(6), object(1)
也就是说,在数据帧中的七列中,有六列是dtypefloat64
,一列是dtypeobject
。我根据列的名称猜测,极限震级和曝光时间是dtypefloat64
,光谱类型是dtypeobject
如果这个猜测是正确的,那么如果您想将它们作为float64
s进行操作,就不需要更改限制量级和曝光时间的类型
我需要保持光谱类型列的原样;我该怎么做 我不明白这个问题。请详细说明
我该怎么做才能将我的数据以正确的表格格式显示, 这样我就可以把它画出来了 您的数据可以如下所示的表格格式打印:
pd.set_option('display.max_columns', 7)
print(df)
要制作情节,可以使用。熊猫也有一些。除了
xlsx.parse
行中的语法错误外,结果似乎没有绑定回xlsx
,因此xlsx
不是ExcelFile
,不是DataFrame
?我通常使用模式df=xlsx.parse(etc)
。哎呀,我读得不够仔细。感谢您的更正。感谢unutbu和DSM,但我仍然无法转换数据类型。以下是我尝试的:感谢unutbu和DSM,但我仍然无法转换数据类型。下面是我尝试的:“xlsx=pd.ExcelFile('filename.xlsx')”、“df=xlsx.parse(etc)”#将浮点数据类型转换为整数。列名是Spectral Type,所以我尝试了我原来的'Spectral Type=Spectral Type.astype('int'),再次出现了语法错误,unutbu的建议也不起作用,最后我尝试了'df.Spectral Type=df.Spectral Type.astype('int'),这也产生了无效的语法错误。还有其他建议吗?Python变量名不能包含空格。这就是光谱类型=…
不起作用的原因之一。听起来像字符串“spectrum Type”
是数据帧中的列的名称。这就是为什么我建议df['spectrum Type']
。如果它不起作用,请发布一条完整的回溯错误消息作为问题的补充(在评论中很难阅读)。我们在这里瞎飞,所以“它不起作用”对我们来说只是不足以帮助您:)