Python 从浮点64转换为整数时出现语法错误

Python 从浮点64转换为整数时出现语法错误,python,pandas,Python,Pandas,我试图在pandas中使用excel数据,并且必须将float64数据转换为整数类型,但我不断遇到语法错误。请注意,我是编程语言的完全新手,因此我希望得到尽可能多的帮助-我花了一周时间才弄清楚如何在pandas中打开我的excel文件,现在我在将其转换为matplotlib中可以使用的格式时遇到了问题。我使用的代码如下,所以我希望有人能帮助我 from pandas import ExcelFile import pandas as pd # Create ExcelFile object xl

我试图在pandas中使用excel数据,并且必须将float64数据转换为整数类型,但我不断遇到语法错误。请注意,我是编程语言的完全新手,因此我希望得到尽可能多的帮助-我花了一周时间才弄清楚如何在pandas中打开我的excel文件,现在我在将其转换为matplotlib中可以使用的格式时遇到了问题。我使用的代码如下,所以我希望有人能帮助我

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)
    
    也就是说,在数据帧中的七列中,有六列是dtype
    float64
    ,一列是dtype
    object
    。我根据列的名称猜测,极限震级和曝光时间是dtype
    float64
    ,光谱类型是dtype
    object

    如果这个猜测是正确的,那么如果您想将它们作为
    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']
    。如果它不起作用,请发布一条完整的回溯错误消息作为问题的补充(在评论中很难阅读)。我们在这里瞎飞,所以“它不起作用”对我们来说只是不足以帮助您:)