Python 如何合并两个数据帧列并对其应用pandas.to_datetime?

Python 如何合并两个数据帧列并对其应用pandas.to_datetime?,python,pandas,Python,Pandas,我正在学习使用熊猫,用它进行一些数据分析。数据以csv文件的形式提供,有几个列,其中我只需要使用4(日期、时间、o、c)。我想创建一个新的DataFrame,它使用一个DateTime64数字作为索引,这个数字是通过合并前两列创建的,在合并的字符串上应用pd.to_datetime 我的加载程序代码工作正常: st = pd.read_csv("C:/Data/stockname.txt", names=["date","time","o","h","l","c","vol"]) 挑战在于将加

我正在学习使用熊猫,用它进行一些数据分析。数据以csv文件的形式提供,有几个列,其中我只需要使用4(日期、时间、o、c)。我想创建一个新的DataFrame,它使用一个DateTime64数字作为索引,这个数字是通过合并前两列创建的,在合并的字符串上应用pd.to_datetime

我的加载程序代码工作正常:

st = pd.read_csv("C:/Data/stockname.txt", names=["date","time","o","h","l","c","vol"])
挑战在于将加载的数据帧转换为具有正确格式的新数据帧。下面的代码可以工作,但速度非常慢。此外,它只使用新的datetime64格式生成一列,而不将其作为索引

我的代码

st_new = pd.concat([pd.to_datetime(st.date + " " + st.time), (st.o + st.c) / 2, st.vol], 
     axis = 1, ignore_index=True)
合并两个列并将函数应用到结果中,哪种方式更像python?
如何使新列成为数据帧的索引?

至于加载数据,我认为您已经做到了。要设置索引,请执行以下操作:

st_new = pd.concat([(st.o + st.c) / 2, st.vol], axis=1, ignore_index=True)
st_new.set_index(pd.to_datetime(st.date + " " + st.time), drop=True, inplace=True)

以下是。

您可以在
读取\u csv
功能中执行的所有操作:

pd.read_csv('test.csv',
            parse_dates={'timestamp': ['date','time']},
            index_col='timestamp',
            usecols=['date', 'time', 'o', 'c'])
parse_dates
告诉
read_csv
函数将
date
time
列组合成一个
timestamp
列,并将其作为时间戳进行解析。(熊猫足够聪明,知道如何以各种格式解析日期)

index\u col
时间戳
列设置为索引


usecols
告诉
read\u csv
函数只选择列的子集。

我认为
usecols应该是['date','time','o','h','l','c','vol]
?他说:其中我只需要使用4(date,time,o,c),所以我只选择了它们。+1我不知道
解析日期@杰夫是新来的吗?@ViktorKerkez谢谢,这很有道理。还有一个细节,应用一个函数并将列合并到一个新的dn中的挑战,不确定您想要什么,问题还没有结束?