繁体   English   中英

Pandas:拆分单元格并将数据附加到另一个单元格

[英]Pandas: split cell and append data to another cell

好吧,我正在尝试拆分csv中的单元格并获取信息的后半部分并将其附加到另一个单元格数据。 我可以拆分单元格,但随后我想要的数据就会消失。

此代码适用于拆分单元格

import pandas as pd

data = pd.read_csv("/root/v-unit/calendar_data.csv")


data["Start"]= data["Start"].str.split("T",n =1, expand = True)
data["End"]= data["End"].str.split("T",n =1, expand = True)

print data
csvOut = "/root/v-unit/test-data.csv"
f=open(csvOut, 'a')
data[:65534].to_csv(f, index=False, header=True)

所以日期的格式是2019-03-04T00:00:00我将列拆分为T的时间。 然后我想拿出时间戳并将其附加到包含任务的另一行,因此它将显示为:某个任务12点1:00在一个单元格中然后是其他单元格中的日期(他们已经在我执行的时候)运行上面的代码,但时间戳消失,所以我不能合并它)

几乎和你一样,但是当你用expand分割时,它会返回2列,所以你需要分配2列(比如data[['StartDate', 'StartTime']] = ... ):

data = pd.DataFrame({'Start': ['2019-03-04T00:00:00'],
                     'End':   ['2019-03-04T10:00:00']})

data[['Start', 'StartTime']] = data["Start"].str.split("T", n=1, expand = True)
data[['End', 'EndTime']] = data["End"].str.split("T", n=1, expand = True)

print(data)

输出:

        Start         End StartTime   EndTime
0  2019-03-04  2019-03-04  00:00:00  10:00:00

注意:如果您只想在任务名称中添加开始和结束时间,则甚至不需要拆分日期。 您可以使用pd.to_datetime转换它们,然后使用strftime格式化为'%H:%M'hours:minutes ):

data = pd.DataFrame({'Task': 'task 1',
                     'Start': ['2019-03-04T00:00:00'],
                     'End':   ['2019-03-04T10:00:00']})

data['Task'] += ' ' + \
    pd.to_datetime(data['Start']).dt.strftime('%H:%M').astype(str) + ' ' + \
    pd.to_datetime(data['End']).dt.strftime('%H:%M').astype(str)

print(data)

输出:

                 Task                Start                  End
0  task 1 00:00 10:00  2019-03-04T00:00:00  2019-03-04T10:00:00

您只需要选择第二列,并且可以像这样有效地执行此操作:

import pandas as pd

data = pd.DataFrame({'Start': ['2019-03-04T00:00:00'],
                     'End': ['2019-03-04T01:00:00']})

data['Start'] = data['Start'].str.split('T').str[-1] 
data['End'] = data['End'].str.split('T').str[-1] 

print(data)

>       Start       End
> 0  00:00:00  01:00:00

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM