【发布时间】:2019-11-05 08:39:51
【问题描述】:
我读过这个Pandas: convert type of column 和这个How to convert datatype:object to float64 in python? 我有 df 的当前输出:
Day object
Time object
Open float64
Close float64
High float64
Low float64
Day Time Open Close High Low
0 ['2019-03-25'] ['02:00:00'] 882.2 882.6 884.0 882.1
1 ['2019-03-25'] ['02:01:00'] 882.9 882.9 883.4 882.9
2 ['2019-03-25'] ['02:02:00'] 882.8 882.8 883.0 882.7
所以我不能用这个:
day_=df.loc[df['Day'] == '2019-06-25']
我的最终目的是通过按特定条件过滤“Day”列的值来提取 df。 我认为上面 df.loc 执行失败的原因是 Day 的 dtype 是对象,所以我无法执行 df.loc 所以我尝试将上面的df转换成这样的:
Day Time Open Close High Low
0 2019-03-25 ['02:00:00'] 882.2 882.6 884.0 882.1
1 2019-03-25 ['02:01:00'] 882.9 882.9 883.4 882.9
2 2019-03-25 ['02:02:00'] 882.8 882.8 883.0 882.7
我试过了:
df=pd.read_csv('output.csv')
df = df.convert_objects(convert_numeric=True)
#df['Day'] = df['CTR'].str.replace('[','').astype(np.float64)
df['Day'] = pd.to_numeric(df['Day'].str.replace(r'[,.%]',''))
但它不适用于这样的错误:
ValueError: Unable to parse string "['2019-03-25']" at position 0
我是 pandas 的新手,这可能会重复! 请帮我找到解决方案。非常感谢。
【问题讨论】:
-
以
df = df.replace([r"\['", r"'\]"], ['', ''], regex=True)开头,然后为所欲为。 -
非常感谢!它符合我的预期。
-
不客气!我建议删除您的问题,因为这是一个非常深奥的问题(主要是错误保存或加载数据的问题)。干杯。
标签: python-3.x pandas