Python 需要帮助将列时间戳数据转换为2个单独的列(日期、时间)
一般来说,对编程和python来说是相当陌生的。边走边学。打破东西,很多,但学习很多 我想做的是创建一个带有特定列的CSV,但我还没有弄清楚。目前,在我整理数据之后,其中一列是日期时间戳,我需要将其分为两列,一列是日期(yyyy/mm/dd),另一列是时间(HH:mm:SS 24小时时间)。代码如下所示:Python 需要帮助将列时间戳数据转换为2个单独的列(日期、时间),python,pandas,dataframe,Python,Pandas,Dataframe,一般来说,对编程和python来说是相当陌生的。边走边学。打破东西,很多,但学习很多 我想做的是创建一个带有特定列的CSV,但我还没有弄清楚。目前,在我整理数据之后,其中一列是日期时间戳,我需要将其分为两列,一列是日期(yyyy/mm/dd),另一列是时间(HH:mm:SS 24小时时间)。代码如下所示: activities = api.get_activities( date='2021-03-09', direction='asc', ) df = pd.DataFram
activities = api.get_activities(
date='2021-03-09',
direction='asc',
)
df = pd.DataFrame([activity._raw for activity in activities])
print('created dataframe')
id = df["id"]
activity_type = df["activity_type"]
transaction_time = df["transaction_time"]
type = df["type"]
price = df["price"]
qty = df["qty"]
side = df["side"]
symbol = df["symbol"]
leaves_qty = df["leaves_qty"]
order_id = df["order_id"]
cum_qty = df["cum_qty"]
df[['date', 'time']] = df.transaction_time.str.strip('Z').str.split('T', expand=True)
header = ["date","time","symbol","qty","price","side"]
df.to_csv('daily_journal_export.csv', columns = header, index = False)
print('Completed')
transaction_time,symbol,qty,price,side
2021-03-09T15:03:06.0925Z,XNET,5059,6.21,buy
2021-03-09T15:03:06.888595Z,XNET,718,6.21,buy
2021-03-09T15:03:09.474924Z,CLNE,3661,11.65,buy
2021-03-09T15:05:13.957144Z,SOL,1728,12.68,buy
2021-03-09T15:57:53.094945Z,SOL,753,13.33,sell
2021-03-09T15:57:53.118822Z,XNET,5777,6.09,sell
2021-03-09T15:57:53.220454Z,CLNE,3661,11.78,sell
2021-03-09T15:57:53.613874Z,SOL,975,13.33,sell
导出时,我得到的内容如下所示:
activities = api.get_activities(
date='2021-03-09',
direction='asc',
)
df = pd.DataFrame([activity._raw for activity in activities])
print('created dataframe')
id = df["id"]
activity_type = df["activity_type"]
transaction_time = df["transaction_time"]
type = df["type"]
price = df["price"]
qty = df["qty"]
side = df["side"]
symbol = df["symbol"]
leaves_qty = df["leaves_qty"]
order_id = df["order_id"]
cum_qty = df["cum_qty"]
df[['date', 'time']] = df.transaction_time.str.strip('Z').str.split('T', expand=True)
header = ["date","time","symbol","qty","price","side"]
df.to_csv('daily_journal_export.csv', columns = header, index = False)
print('Completed')
transaction_time,symbol,qty,price,side
2021-03-09T15:03:06.0925Z,XNET,5059,6.21,buy
2021-03-09T15:03:06.888595Z,XNET,718,6.21,buy
2021-03-09T15:03:09.474924Z,CLNE,3661,11.65,buy
2021-03-09T15:05:13.957144Z,SOL,1728,12.68,buy
2021-03-09T15:57:53.094945Z,SOL,753,13.33,sell
2021-03-09T15:57:53.118822Z,XNET,5777,6.09,sell
2021-03-09T15:57:53.220454Z,CLNE,3661,11.78,sell
2021-03-09T15:57:53.613874Z,SOL,975,13.33,sell
事务时间如下所示,需要分离和转换:
- 日期栏:(yyyy/mm/dd)
- 时间列:(HH:MM:SS 24小时时间)
任何帮助都将不胜感激。您可以在时间戳上使用
str.split()
,并使用展开参数(下面的2a),或者使用.dt.date
和.dt.time
(下面的2b)
加载示例数据:
>>将熊猫作为pd导入
>>>df=pd.read\u csv('daily\u journal\u export.csv'))
交易\时间符号数量价格侧
2021-03-09T15:03:06.0925Z XNET 50596.21购买
1201-03-09T15:03:06.888595Z XNET 718 6.21购买
2021-03-09T15:03:09.474924Z CLNE 3661 11.65购买
3 2021-03-09T15:05:13.957144Z SOL 1728 12.68购买
4 2021-03-09T15:57:53.094945Z SOL 753 13.33卖出
5 2021-03-09T15:57:53.118822Z XNET 5777 6.09卖出
6 2021-03-09T15:57:53.220454Z CLNE 3661 11.78卖出
7 2021-03-09T15:57:53.613874Z SOL 97513.33卖出
2a。去掉小数,按T
拆分,并展开为单独的列:
>>df[['date','time']]=df.transaction\u time.str.replace(r'\..*,'').str.split('T',expand=True)
>>>df=df.drop('transaction\u time',axis=1)
符号数量价格侧日期时间
0 XNET 50596.21购买2021-03-09 15:03:06
1 XNET 718 6.21购买2021-03-09 15:03:06
2 CLNE 3661 11.65购买2021-03-09 15:03:09
3索尔1728 12.68购买2021-03-09 15:05:13
4 SOL 753 13.33出售2021-03-09 15:57:53
5 XNET 5777 6.09出售2021-03-09 15:57:53
6 CLNE 3661 11.78出售2021-03-09 15:57:53
7 SOL 975 13.33出售2021-03-09 15:57:53
2b或者,您可以使用.dt.date
和.dt.time
代替2a的字符串拆分方法:
df['date']=pd.to_datetime(df.transaction_time).dt.date
>>>df['time']=pd.to\u datetime(df.transaction\u time.str.replace(r'\..*,'').dt.time
>>>df=df.drop('transaction\u time',axis=1)
符号数量价格侧日期时间
0 XNET 50596.21购买2021-03-09 15:03:06
1 XNET 718 6.21购买2021-03-09 15:03:06
2 CLNE 3661 11.65购买2021-03-09 15:03:09
3索尔1728 12.68购买2021-03-09 15:05:13
4 SOL 753 13.33出售2021-03-09 15:57:53
5 XNET 5777 6.09出售2021-03-09 15:57:53
6 CLNE 3661 11.78出售2021-03-09 15:57:53
7 SOL 975 13.33出售2021-03-09 15:57:53
如果要将日期
和时间
移回前面:
>>>columns=df.columns.to_list()[-2:]+df.columns.to_list()[:-2]
>>>df=df[列]
日期时间符号数量价格侧
021-03-09 15:03:06 XNET 5059 6.21购买
1201-03-09 15:03:06 XNET 718 6.21购买
2021-03-09 15:03:09 CLNE 3661 11.65购买
2021-03-09 15:05:13太阳报1728 12.68购买
4 2021-03-09 15:57:53索尔753 13.33卖出
5 2021-03-09 15:57:53 XNET 5777 6.09出售
6 2021-03-09 15:57:53 CLNE 3661 11.78卖出
7 2021-03-09 15:57:53索尔97513.33卖出
那么我需要做些什么来调整我的标题吗?header=[“transaction_time”、“symbol”、“Quantity”、“price”、“side”]我在我的原始帖子中添加了新的细节。好的,我更新了代码以处理适当的标题(使用您的新样本数据)。对不起,伙计,我有点迷路了,只是对python和pandas不太熟悉。我可以告诉你,我正在全力以赴。我只是没有得到和你一样的结果。他们是在我的原始代码中进行剥离和组织,而不是生成新的python文件的一种方法吗?天哪,我做到了,没问题!