小编Loi*_*ler的帖子

将 Python Pandas 数据框中的所有字符串类型替换为 1

这是一个奇怪的具体问题,但是

如果我有一个 pandas 数据框,如下所示:

...
8                                                        0
9                                                        0
10                                                       0
11                                                       0
12                                                       0
13                                                    Dogs
14                                                    Cats
...
Run Code Online (Sandbox Code Playgroud)

我需要它来查看所有字符串类型并将它们更改为 1,所以:

...
8                                                        0
9                                                        0
10                                                       0
11                                                       0
12                                                       0
13                                                       1
14                                                       1
...
Run Code Online (Sandbox Code Playgroud)

有没有办法让 df.replace() 查看字符串类型?

谢谢!

python string dataframe pandas

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

Pandas分组并按时间汇总前的时间

好玩的问题!

我有一个包含许多列的数据框,但相关的列是:id,event_time

这些ID是可重复的。我正在尝试计算每行中ID出现之前数据帧中ID出现的所有时间。因此,如果id = 43且event_time = 2016-01-01 12:00:00,我希望计算id 43在此event_time之前发生的所有时间。event_time已使用pd.to_datetime()格式化,但不是索引。

这个循环解决了这个问题,但是对于400k +行来说,它实在太慢了。

occs=[]
for ix in range(len(df)):
    cur=df.iloc[[ix]]
    occurrences=df[(df.id==cur.id.values[0])&
    (df.event_time < cur.event_time.values[0])]
    occs.append(len(occurrences))
df['total_occ']=occs
Run Code Online (Sandbox Code Playgroud)

知道必须有一个更好的方法,可能是使用group by。关键是它只能在event_time之前的时间出现,并且它们的顺序不正确。

感谢大家!

*编辑样本数据*

 id      |        event_time        |      count
 11               2016-11-09                1
 8                2016-11-10                1
 32               2016-11-08                0
 11               2016-11-08                0
 8                2016-11-11                2
 8                2016-11-07                0
Run Code Online (Sandbox Code Playgroud)

(但是,计数将高得多,以数千为单位...计数是所需的输出)

python pandas

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

标签 统计

pandas ×2

python ×2

dataframe ×1

string ×1