小编Jul*_*rec的帖子

Python Pandas:两个星期之间的日期差异?

尝试查找几周内两个日期之间的差异时:

import pandas as pd

def diff(start, end):
    x = millis(end) - millis(start)
    return x / (1000 * 60 * 60 * 24 * 7 * 1000)

def millis(s):
    return pd.to_datetime(s).to_datetime64()

diff("2013-06-10","2013-06-16")
Run Code Online (Sandbox Code Playgroud)

结果,我得到:

Out[15]: numpy.timedelta64(857,'ns')
Run Code Online (Sandbox Code Playgroud)

这显然是错误的。问题:

  1. 如何获得以周为单位的差异,而不是以纳秒为单位取整?

  2. 如何从“ numpy.timedelta64”对象中获取价值?

python pandas

3
推荐指数
1
解决办法
2004
查看次数

Python(Pandas)错误'标签[阿尔及利亚]不在[索引]中

我不明白为什么会这样

df[(df['Gold']>0) & (df['Gold.1']>0)].loc[((df['Gold'] - df['Gold.1'])/(df['Gold'])).abs().idxmax()]
Run Code Online (Sandbox Code Playgroud)

但是当我分开时(df['Gold'] + df['Gold.1'] + df['Gold.2']) 它停止工作给我错误,你可以在下面找到.

有趣的是,以下行有效

df.loc[((df['Gold'] - df['Gold.1'])/(df['Gold'] + df['Gold.1'] + df['Gold.2'])).abs().idxmax()]
Run Code Online (Sandbox Code Playgroud)

我不明白自从我开始学习Python和Pandas以来发生了什么.我需要了解发生这种情况的原因以及如何解决这个问题.

错误

KeyError:'标签[阿尔及利亚]不在[索引]中

DataFrame snap 在此输入图像描述

python indexing assign pandas

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

熊猫:从3列创建时间戳:月,日,小时

我使用的是Python 2.7,panda 0.14.1-2,numpy 1.8.1-1.我必须使用Python 2.7,因为我将它与在Python 3上不起作用的东西耦合在一起

我正在尝试分析在单独的列中输出Month,Day和Hour的csv文件,看起来如下所示:

Month Day Hour Value 1 1 1 105 1 1 2 30 1 1 3 85 1 1 4 52 1 1 5 65

我基本上想要从这些列创建时间戳,并使用"2005"作为年份,并将此新时间戳列设置为索引.我已经阅读了很多类似的问题(这里这里),但它们都依赖于read_csv().我没有年份专栏,所以我认为这不适用于我(除了加载数据框,插入列,写入和重做read_csv ...似乎是错综复杂的).

加载数据帧后,我在位置0插入一个Year列df.insert(0,"Year",2005)

所以现在我有了

Year Month Day Hour Value 2005 1 1 1 105 2005 1 1 2 30 2005 1 1 3 85 2005 1 1 4 52 2005 1 1 5 65 df.types告诉我所有列都是int64类型.

然后我尝试这样做:

df['Datetime'] = pd.to_datetime(df.Year*1000000 + df.Month*10000 + df.Day+100 + df.Hour, …

python datetime pandas

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

熊猫:根据每个组的每个前i记录的总和获得前n个记录

我有一个像这样的pandas数据帧:

>>> df

    id    value   
0    1      10
1    1      11
2    1      9
3    2      7
4    2      7
5    2      8
6    3      10
7    3      8
Run Code Online (Sandbox Code Playgroud)

我希望根据前两个值的总和得到前两个id.所以在这里,我应该得到这个:

    id    # value   
0    1    # 11 + 10 = 21
1    3    # 10 + 8 = 18
Run Code Online (Sandbox Code Playgroud)

我试过用:

df.groupby('id')['value'].nlargest(2).sum()
Run Code Online (Sandbox Code Playgroud)

但这会返回所有最大值的总和.

我寻找我的问题的答案,但我没有得到正确的答案.

python grouping pandas

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

pandas数据帧中的第一列不是列?

我有一个名为的数据框dfimp:

>>dfimp
           Column1    Column2
vo_11                          
102        0.023002           0
301     3571.662104           0
302     1346.910261           0
...
Run Code Online (Sandbox Code Playgroud)

在我的noob意见中它的三列?但:

>>dfimp.dtypes
Column1      float64
Column2      float64
dtype: object
Run Code Online (Sandbox Code Playgroud)

那么它的两列呢?什么是第一个(vo_11)被称为?我想用它来进行合并但是当我这样做时我得到错误,说没有列名vo_11.

pandas

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

从 csv 文件读取时,pandas 添加列

我想使用 pandas 从 CSV 文件中读取read_csv。CSV 文件没有列名。当我使用 Pandas 读取 CSV 文件时,第一行默认设置为列。但是当我使用时df.columns = ['ID', 'CODE'],第一行不见了。我想添加,而不是替换。

df = pd.read_csv(CSV)
df

    a   55000G707270
0   b   5l0000D35270
1   c   5l0000D63630
2   d   5l0000G45630
3   e   5l000G191200
4   f   55000G703240


df.columns=['ID','CODE']
df

    ID          CODE
0   b   5l0000D35270
1   c   5l0000D63630
2   d   5l0000G45630
3   e   5l000G191200
4   f   55000G703240
Run Code Online (Sandbox Code Playgroud)

python csv pandas

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

从数据框中的单元格内部提取列表

我有一个数据框,其中一列有一个值列表。例如

    created      values
0   2016-12-21   [1,2,3,4]
1   2016-12-28   [6,7,8,9]
2   2017-01-4   [13,12,11,10]
Run Code Online (Sandbox Code Playgroud)

假设我想提取不同的行列中的最后一个值list(13,12,11,10)。我已经使用如下所示的函数编写了一些代码iloc[],但出现了错误

类型错误:不可散列的类型:“列表”

i=0
c=[]
while value in a['values']:
    i=i+1
    c=a['values'].iloc[i]    
c
Run Code Online (Sandbox Code Playgroud)

下面是堆栈跟踪

TypeError                                 Traceback (most recent call last)
<ipython-input-18-a6f26f30f73d> in <module>()
      2 user_id=[]
      3 c=[]
----> 4 while user_id in a['user_ids']:
      5     i=i+1
      6     c=a['user_ids'].iloc[i]

C:\Users\aditya\Anaconda3\lib\site-packages\pandas\core\generic.py in             __   contains__(self, key)
    844     def __contains__(self, key):
    845         """True if the key is in the info axis"""
--> 846         return key in self._info_axis
    847 
    848     @property

C:\Users\aditya\Anaconda3\lib\site-packages\pandas\indexes\base.py …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

在Pandas DF中取消虚拟变量的最有效方法

因此,在下面的屏幕截图中,我们有3个不同的能源站点,即ID01,ID18和ID31。它们的格式为虚拟变量类型,出于可视化的目的,我只想创建一个我可以使用的名为“站点”的列。您会看到我快速创建的循环,但是似乎效率很低。关于如何以最快的方式实现这一目标的任何指示?

屏幕截图

python dataframe pandas

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

标签 统计

pandas ×8

python ×7

assign ×1

csv ×1

dataframe ×1

datetime ×1

grouping ×1

indexing ×1