Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';在Python中不能使函数工作_Python_Pandas - Fatal编程技术网

Can';在Python中不能使函数工作

Can';在Python中不能使函数工作,python,pandas,Python,Pandas,我试图在数据中找出前几个月的值之间的差异。数据可以看到。我用的是Spyder。我使用的代码如下: import pandas as pd #Ask User to input location of import file print('Input file location') filename = input() #Importing csv file to importdata_df datafram data = pd.read_csv(filename) #melt data

我试图在数据中找出前几个月的值之间的差异。数据可以看到。我用的是Spyder。我使用的代码如下:

import pandas as pd

#Ask User to input location of import file

print('Input file location')
filename = input()

#Importing csv file to importdata_df datafram
data = pd.read_csv(filename)

#melt data 


melt = data.melt(id_vars='HS Code', var_name='Month', value_name='Imports')

melt = melt.sort_values(['Month', 'HS Code'])


#Add variables for last month imports and last month difference
melt2 = melt.copy()
melt2['Last_Month_Imports'] = melt2.groupby(['HS Code'])['Imports'].shift()
melt2['Last_Month_Diff'] = melt2.groupby(['HS Code'])['Last_Month_Imports'].diff()
melt2 = melt2.dropna()
print(melt2.head())
但是,当我运行此代码时,我收到以下错误:

line 34, in <module>
    melt2['Last_Month_Diff'] = melt2.groupby(['HS Code'])['Last_Month_Imports'].diff()

  File "C:\Anaconda3\lib\site-packages\pandas\core\groupby\groupby.py", line 622, in wrapper
    raise ValueError

ValueError
第34行,在
melt2['Last_Month_Diff']=melt2.groupby(['HS Code'])['Last_Month_Imports'].Diff()
包装器中的文件“C:\Anaconda3\lib\site packages\pandas\core\groupby\groupby.py”,第622行
升值误差
数值误差

您应该查看
diff()


将返回列中上一行的差异

我想
HS code
是在索引中提交的,因此您不能用于GroupBy我不明白,diff()和dif()之间是否有差异?抱歉,是一种类型,该函数与diff()一起使用。您上个月的导入中似乎有字符串。do melt2.info()并检查所需的列是否为float或int。您的列很可能包含字符串和数字。您需要删除所有不是数字的内容,并将列转换为数字以尝试任何数学函数
df[column].diff()