Python 如何对特定列中的每个数字进行数学计算
我使用Python中的Python 如何对特定列中的每个数字进行数学计算,python,numpy,pandas,math,exp,Python,Numpy,Pandas,Math,Exp,我使用Python中的pandas.read\u Excel()导入了一个Excel文件。 然后我想对特定列中的每个数字进行数学计算,并生成一个新列。但有一个错误: TypeError:无法将序列转换为 我怎样才能解决这个问题?下面是我的代码 import pandas as pd import math N_DATA=pd.read_excel(r"path\datajl.xls",index_col='R') rchdecay=N_DATA['column_name'] rchdcayf=
pandas.read\u Excel()
导入了一个Excel文件。然后我想对特定列中的每个数字进行数学计算,并生成一个新列。但有一个错误: TypeError:无法将序列转换为 我怎样才能解决这个问题?下面是我的代码
import pandas as pd
import math
N_DATA=pd.read_excel(r"path\datajl.xls",index_col='R')
rchdecay=N_DATA['column_name']
rchdcayf=math.exp(-rchdecay*0.008)
我认为你需要:
样本:
import pandas as pd
import numpy as np
N_DATA = pd.DataFrame({'column_name':[1,2,3]})
print (N_DATA)
column_name
0 1
1 2
2 3
rchdcayf=np.exp(-N_DATA['column_name']*0.008)
print (rchdcayf)
0 0.992032
1 0.984127
2 0.976286
Name: column_name, dtype: float64
或者math.exp
,但速度较慢:
rchdcayf1=(-N_DATA['column_name']*0.008).apply(math.exp)
print (rchdcayf1)
0 0.992032
1 0.984127
2 0.976286
Name: column_name, dtype: float64
计时:
len(df)=3
len(df)=3k
:
In [64]: %timeit np.exp(-N_DATA['column_name']*0.008)
1000 loops, best of 3: 214 µs per loop
In [65]: %timeit (-N_DATA['column_name']*0.008).apply(math.exp)
1000 loops, best of 3: 873 µs per loop
计时代码:
import pandas as pd
import numpy as np
import math
N_DATA = pd.DataFrame({'column_name':[1,2,3]})
N_DATA = pd.concat([N_DATA]*1000).reset_index(drop=True)
rchdcayf=np.exp(-N_DATA['column_name']*0.008)
print (rchdcayf)
rchdcayf1=(-N_DATA['column_name']*0.008).apply(math.exp)
print (rchdcayf1)
In [64]: %timeit np.exp(-N_DATA['column_name']*0.008)
1000 loops, best of 3: 214 µs per loop
In [65]: %timeit (-N_DATA['column_name']*0.008).apply(math.exp)
1000 loops, best of 3: 873 µs per loop
import pandas as pd
import numpy as np
import math
N_DATA = pd.DataFrame({'column_name':[1,2,3]})
N_DATA = pd.concat([N_DATA]*1000).reset_index(drop=True)
rchdcayf=np.exp(-N_DATA['column_name']*0.008)
print (rchdcayf)
rchdcayf1=(-N_DATA['column_name']*0.008).apply(math.exp)
print (rchdcayf1)