从Dataframe对象筛选字符串和整数值-python
我想在一列中实现对excel文件的操作 该列具有字符串和整数数据,但该列是对象类型 我的数据在Excel中看起来像:(字符串和数字的组合) 我已经尝试了下面的代码从Dataframe对象筛选字符串和整数值-python,python,excel,pandas,Python,Excel,Pandas,我想在一列中实现对excel文件的操作 该列具有字符串和整数数据,但该列是对象类型 我的数据在Excel中看起来像:(字符串和数字的组合) 我已经尝试了下面的代码 if (df['Time Spent']=='None').all(): df['Time Spent'] = 0 else: df['Time Spent'] = df['Time Spent'].astype('int')/3600 我得到的错误 索引([u'Issue Key',u'Issue Id',u'Summary
if (df['Time Spent']=='None').all():
df['Time Spent'] = 0
else:
df['Time Spent'] = df['Time Spent'].astype('int')/3600
我得到的错误
索引([u'Issue Key',u'Issue Id',u'Summary',u'assignment',u'Priority',
u'问题类型'、u'状态'、u'标签'、u'原始估算'、u'花费的时间',
u‘决议日期’,u‘创建日期’],
dtype='object')
回溯(最近一次呼叫最后一次):
文件“dashboard\u migration\u graph\u Resolved.py”,第60行,中
df['Time-speed']=df['Time-speed'].astype('int')/3600
文件“/usr/lib64/python2.7/site packages/pandas/util/_decorators.py”,第118行,在包装器中
返回函数(*args,**kwargs)
文件“pandas/_libs/lib.pyx”,第854行,在pandas._libs.lib.astype_intsafe中
文件“pandas/_libs/src/util.pxd”,第91行,在util.set_value_处
ValueError:以10为基数的long()的文本无效:“无”
我无法发表评论(因为声誉不好),但您是否尝试过:
df['Time Spent'] = df['Time Spent'].replace('None', 0). astype(int)/3600
希望这对您有用。与errors='concurve'
一起使用,将所有非数字转换为缺少的值,因此在除法之前添加:
df['Time Spent'] = pd.to_numeric(df['Time Spent'], errors='coerce').fillna(0)/3600
print (df)
Time Spent
0 1.0
1 0.0
2 0.0
3 0.5
4 0.0
如果需要None
返回类似的错误值,则只删除fillna
-而不是None
获取缺少的值NaN
,因此可能有多列:
df['Time Spent'] = pd.to_numeric(df['Time Spent'], errors='coerce')/3600
print (df)
Time Spent
0 1.0
1 0.0
2 NaN
3 0.5
4 0.0
我不想用0.0替换“无”。在这之后有没有其他方法可以得到“无”back@HimanshuPant-似乎需要
df['Time-speed']=pd.to_numeric(df['Time-speed'],errors='improve')/3600
,您能检查一下吗?
df['Time Spent'] = pd.to_numeric(df['Time Spent'], errors='coerce').fillna(0)/3600
print (df)
Time Spent
0 1.0
1 0.0
2 0.0
3 0.5
4 0.0
df['Time Spent'] = pd.to_numeric(df['Time Spent'], errors='coerce')/3600
print (df)
Time Spent
0 1.0
1 0.0
2 NaN
3 0.5
4 0.0