小编Jos*_* Ho的帖子

从熊猫数据框中的前一行减去日期时间值

我有一个包含两列的数据框:类别日期时间

我想创建一个新列,显示当前行与前一行的日期时间之间的差异,在每个 category 重新开始

我拥有的:

Category    Datetime
A           2018-02-01 01:51:04
A           2018-02-01 02:04:04
B           2018-02-01 02:28:34 
B           2018-02-01 02:41:34
B           2018-02-01 02:45:34    
Run Code Online (Sandbox Code Playgroud)

我想要的是:

Category    Datetime               Difference
A           2018-02-01 01:51:04    NaT
A           2018-02-01 02:04:04    00:13:00
B           2018-02-01 02:28:34    NaT
B           2018-02-01 02:41:34    00:13:00
B           2018-02-01 02:45:34    00:04:00
Run Code Online (Sandbox Code Playgroud)

编辑:

@sacul 我尝试了你的解决方案,df['Difference'] = list(by_group.apply(lambda x: x['Datetime']-x['Datetime'].shift()))但它给了我奇怪的结果......这是我正在使用的实际数据:

Category    Datetime        Difference
A           2/1/18 1:51     NaT
A           2/1/18 2:04     1 days 02:52:00
B           2/1/18 2:28     NaT
C           2/1/18 2:41 …
Run Code Online (Sandbox Code Playgroud)

python group-by subtraction shift dataframe

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

UnicodeDecodeError:'utf-8'编解码器无法解码位置3中的字节0xcc:无效的连续字节

我正在尝试使用csv文件,pd.read_csv但是我得到以下unicode错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 3: invalid continuation byte
Run Code Online (Sandbox Code Playgroud)

csv unicode load pandas python-unicode

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

如何从单独的列表中添加/求和值

我有一个单个数字列表,我想要总结.

我从这开始:

d3 = [9,9,9,8]
d4 = [3,6,np.nan,10]

for i,j in enumerate(d3):
    add = [(d3[i]-d4[i])**2]
Run Code Online (Sandbox Code Playgroud)

当我执行上面的代码时,我得到以下列表:

[36]
[9]
[nan]
[4]
Run Code Online (Sandbox Code Playgroud)

但是,我想要这些数字的SUM,而忽略NaN(所需的输出是36 + 9 + 4):

python numpy list enumerate

0
推荐指数
1
解决办法
98
查看次数