基于Datafram中一列中的字符串将值传递给新列

2024-06-02 04:36:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个相当基本的脚本,它从网页(我无法控制)中提取一些数据,并将数据传递到数据帧。我目前的输出如下:

             language    open-days    open-time   close-time     dept
0             English        24/7                               Sales
1             Spanish       Mo-Fr        07:00        17:00     Sales
2             Spanish       Sa-Su        08:00        15:00     Sales

我想做的是:

1)一周中每天有两个新列 2) 检查“开放日”列,查看该行何时开放(如果是24/7,则通过0) 3) 将打开和关闭时间传递给新列

我在这里设想的结果是这样的:

             language    open-days    open-time   close-time     dept     mon-open     mon-closed
0             English        24/7                               Sales            0      0
1             Spanish       Mo-Fr        07:00        17:00     Sales        07:00      17:00
2             Spanish       Sa-Su        08:00        15:00     Sales        08:00      15:00

到目前为止,我所能做的就是以某种方式破坏我当前的数据帧,或者在右边附加一堆空列。你知道吗


Tags: 数据closetimeenglishsaopenfrdays
1条回答
网友
1楼 · 发布于 2024-06-02 04:36:12

假设您的原始数据帧被称为df。然后需要添加两列,如下所示

df['mon-open'] = ((df['open-days']!='24/7').astype(int) * df['open-time']).replace('':'0')
df['mon-closed'] = ((df['open-days']!='24/7').astype(int) * df['close-time']).replace('':'0')

编辑 如果需要为open-days中的每个条目提供一对新的列,那么需要修改条件df['open-days']!='24/7'以获取所需的条目(例如Mon-Fri

相关问题 更多 >