小编Yum*_*umi的帖子

Pandas Python - 在aggegate(csv文件)中将HH:MM:SS转换为秒

我试图转换'平均数字'中的数字.会话持续时间'(HH:MM:SS)列到Pandas read_csv模块/功能中的整数(以秒为单位).例如,'0:03:26'将在转换后206秒.

输入示例:

Source       Month  Sessions    Bounce Rate     Avg. Session Duration   
ABC.com     201501   408        26.47%           0:03:26 
EFG.com     201412   398        31.45%           0:04:03
Run Code Online (Sandbox Code Playgroud)

我写了一个函数:

def time_convert(x):
    times = x.split(':')
    return (60*int(times[0])+60*int(times[1]))+int(times[2])
Run Code Online (Sandbox Code Playgroud)

只需将"0:03:26"传递给函数,此功能就可以正常工作.但是当我试图通过将函数应用到Pandas中的另一列时创建一个新列'Duration',

df = pd.read_csv('myfile.csv')
df['Duration'] = df['Avg. Session Duration'].apply(time_convert)
Run Code Online (Sandbox Code Playgroud)

它返回了一条错误消息:

> --------------------------------------------------------------------------- AttributeError                            Traceback (most recent call
> last) <ipython-input-53-01e79de1cb39> in <module>()
> ----> 1 df['Avg. Session Duration'] = df['Avg. Session Duration'].apply(lambda x: x.split(':'))
> 
> /Users/yumiyang/anaconda/lib/python2.7/site-packages/pandas/core/series.pyc
> in apply(self, func, convert_dtype, args, **kwds)    1991            
> values = lib.map_infer(values, lib.Timestamp) …
Run Code Online (Sandbox Code Playgroud)

python csv time dataframe pandas

7
推荐指数
2
解决办法
6353
查看次数

在一个键列上加入两个DataFrame/ERROR:'列重叠但没有指定后缀'

我有两个表:销售表和产品表,这两个表共享'PART NUMBER'列.销售表中的"PART NUMBER"列不是唯一的,但在产品表中是唯一的.(参见下面的销售表和产品表快照的图片)

在此输入图像描述

在此输入图像描述

我试图在销售表上为每个'PART NUMBER'添加等效的'Description',然后我按照pandas网站上的示例我的代码

sales.join(part_table, on='PART NUMBER')
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

ValueError: columns overlap but no suffix specified: Index([u'PART NUMBER'], dtype='object')
Run Code Online (Sandbox Code Playgroud)

有人可以解释这个错误意味着什么以及如何解决它?

非常感谢!

python sql join syntax-error pandas

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

pandas ×2

python ×2

csv ×1

dataframe ×1

join ×1

sql ×1

syntax-error ×1

time ×1