如何连接多个Pandas系列'在插入连字符和空格时将字符串类型转换为单个Pandas系列?

时间:2018-04-26 18:32:28

标签: python pandas

问题:

我有一些原始数据,其中包含与日期和时间信息相关的问题 - 例如没有冒号将小时与分钟分开,以及包含2400。我将各列转换为字符串并根据需要进行修改,目的是创建可以解析的单个字符串列。我有大约20个数据集,每个数据集大约35,000行。

样本数据:

a = ["2000"] * 100000
b = ["176"] * 100000
c = ["00:15","00:30","00:45","01:00"] * 25000   
d = {"year":a,"DOY":b,"time":c}
df = pd.DataFrame(d)

df.head()

    DOY time    year
0   176 00:15   2000
1   176 00:30   2000
2   176 00:45   2000
3   176 01:00   2000
4   176 00:15   2000

我的缓慢解决方案:

我创建了以下行来完成任务,但它非常

df["date"] = [df["year"][i]+"-"+df["DOY"][i]+" "+df["time"][i] for i in range(0,len(df),1)]

df.head()

    DOY time    year    date
0   176 00:15   2000    2000-176 00:15
1   176 00:30   2000    2000-176 00:30
2   176 00:45   2000    2000-176 00:45
3   176 01:00   2000    2000-176 01:00
4   176 00:15   2000    2000-176 00:15

问题:

在插入适当的连字符和空格时连接yearDOYtime最快方法是什么为了解析为datetime格式?或者这完全是错误的做法?

一如既往,感谢您的建议。

1 个答案:

答案 0 :(得分:1)

这比循环df

要快得多
df['Date'] = df['year'].map(str) + "-" + df['DOY'].map(str) + " " +  df['time'].map(str)

.map()将输入值映射到传入类型,字典,系列或函数中的相应值。您可以在docs中找到更多信息。

More Info