DataFrame.fillna()
通过 Pandas 读取 f['作案交通工具'] 数据得到含有NaN 列数据,利用 fillna() 函数,可以将 NaN 数据转换成自定义的字符串。
实战:
import pandas as pd
f = pd.read_csv("jingqing.csv")
print(f['作案交通工具'].fillna('missing'))
运行结果:
0 missing
1 missing
2 missing
3 missing
4 missing
...
tolist()
将 DataFrame 中的某一列转换成 List ,可以用 tolist() 这一函数, DataFrame['列名'].tolist()
实战:
d = f['受理时间'].tolist()
print(d)
运行结果:
['2015/12/14/ 15:29', '2015/12/14/ 01:15', '2015/12/11/ 15:06'...]
计算字符串时间差
利用 parse() 函数来计算两个时间的差。
实战:
from dateutil.parser import parse
a = parse('2015/12/15/ 15:29')
b = parse('2015/12/14/ 11:15')
# 计算秒差
secondsDiff = (a-b).seconds
# 计算天差
daysDiff = (a-b).days
# 计算分钟差
minutesDiff = daysDiff*1440+round(secondsDiff/60,1)
# 计算小时差
print(minutesDiff/60)
运行结果:
28.233333333333334
此种方法有点繁琐,这是因为使用 seconds 方式计算时间差时只能算出在一天内的时间差忽略了天数,所以要得到正确的时间差,需要先计算出 days 的时间差,再算出 seconds 的时间差,两者相加再转换成 minutes 才是正确的时间差。 最简单的方式是使用 total_seconds 的方式计算时间差,再转换成 hours 的时间差。如下:
hoursDiff=(a-b).total_seconds()/3600
找出 DataFrame 中的某列中的重复数据
某一列中可能有重复的数据,用 duplicated() 函数可以找到。
实战:
r = []
d = f.loc[f.duplicated('联系电话') == True]
for i in d['联系电话']:
if i != "" and i not in r and i:
r.append(i)
print(r)
运行结果:
[1330571XXXX, 1325102XXXX, 1375088XXXX,...]
希望看客老爷打赏些喝茶钱
支付宝