求助大神python数据转换的问题
有一组数据:data在列‘time'转字符串的时候出错,
不知道啥原因,我怀疑是转DataFrame的方法不对,或者是原始数据有问题,不知道怎么解决
请大神指点
print(data)
# 控制台输出为:
# ), OrderedDict([('A', 1), ('B', 768), ('time', '13:21:05.208')])]
df = pd.DataFrame(data)# 转换成DataFrame格式
print(df)
# 控制台输出为:
# AB time
# 0 02753 13:20:59.550
# 1 176813:21:05.208
df['time1'] = str(df['time'])# 增加一列‘time1'为字符串格式
print(df)
# 控制台输出为:
# AB time servertime1
# 002753 13:20:59.550 13:20:59.550\n1 13:21:05.208\nName: se...
# 1176813:21:05.208 13:20:59.550\n1 13:21:05.208\nName: se...
print(df.dtypes)
# 控制台输出为:
# A int64
# B int64
# time object
# time1 object
# dtype: object
print(type(df))
# 控制台输出为:
# <class 'pandas.core.frame.DataFrame'> data = [{'A': 0, 'B': 2753 , 'time': '13:20:59.550'},
{'A': 1,'B': 768,'time': '13:21:05.208'}]
print(data)
df = pd.DataFrame(data)
df['time1'] = df.apply(lambda x: int(str(x.time).replace(':', '').replace('.', '')), axis=1)
用遍历方式查看‘data'中原始数据的属性,
’time'为
13:20:59.550
<class 'str'>
for dice in data:
for i in dice.values():
print(i)
print(type(i))
exit() 本帖最后由 pzx521521 于 2022-7-25 15:56 编辑
列‘time' 已经是str 了
所以没有必要加列‘time1'
df['time1'] 是一个Series
是没有办法用 str 直接转换的
复制也不能用单纯的等号:
应该用copy
https://pandas.pydata.org/pandas ... ndas.DataFrame.copy
如果确实要数据转换 用:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.convert_dtypes.html pzx521521 发表于 2022-7-25 15:54
列‘time' 已经是str 了
所以没有必要加列‘time1'
我主要的目的是将time列(13:20:59.550)转成(132059550)这样的格式,方面下一步计算时间差,一直没有找到能转的方法 object类型已经是str类型了
可尝试用
pd.Series.str.extract()
方法提取 试试先转成datetime
df['time1'] = pd.to_datetime(df['time1'])
df['time1'] = df['time1'].astype(np.int64) catalyst 发表于 2022-7-25 16:23
试试先转成datetime
df['time1'] = pd.to_datetime(df['time1'])
df['time1'] = df['time1'].astype(np. ...
试了,好像不行
time1
01658761196468000000
11658761198808000000 pzx521521 发表于 2022-7-25 15:16
data = [{'A': 0, 'B': 2753 , 'time': '13:20:59.550'},
{'A': 1,'B': ...
结果正是我需要,谢谢大神!!
我要好好研究一下大神的replace
页:
[1]