小编Shu*_*rma的帖子

使用 python 的“future”模块中的“ThreadPoolExecutor”时是否保证数据安全?

我正在寻找关于这个问题的概念性答案。

我想知道是否ThreadPool在python中使用来执行并发任务,保证数据不被损坏;我的意思是多个线程不会同时访问关键数据

如果是这样,这在ThreadPoolExecutor内部如何工作以确保一次只有一个线程访问关键数据

python

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

使用pandas在同一索引的列中查找连续天数的开始和结束日期

我有一个数据框df

df =

index  date        hats
A1     01-01-2020  5
A1     02-01-2020  10
A1     03-01-2020  16
A1     04-01-2020  16
A1     21-01-2020  9
A1     22-01-2020  8
A1     23-01-2020  7
A6     20-03-2020  5
A6     21-03-2020  5
A8     30-07-2020  12
Run Code Online (Sandbox Code Playgroud)

这里,前四行是连续的天数。我想知道数据框中所有这些连续天数的开始日期和结束日期。如果像 wiseA8索引那样的系列中只有一天,df那么开始日期和结束日期将相同。此外,我也有兴趣了解df['hats']连续天数系列中列中的最高值,并将其日期与其 datehigh_hat一起返回到单独的列中high_hat_date。如果在一系列连续天数中有两个或更多相等的高值,则在新列中num_hat写入高值出现的次数,并在 中写入第一个出现日期high_hat_date

上述数据框的示例输出如下:

index   start_date    end_date    high_hat    high_hat_date   num_hat
A1      01-01-2020    04-01-2020  16          03-01-2020      2
A1      21-01-2020    23-01-2020  9           21-01-2020      1
A6      20-03-2020    21-03-2020  5           20-03-2020 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

pandas 数据框 groupby 并填充第一行值

我有一个这样的df,

df = pd.DataFrame({
    "Name" : ["A","B","C","D","E","F","G"],
    "part number" : ["1","3","2","1","5","1","2"],
    "detail1" : ["A","C","B","B","E","E","E"],
    "detail2" : ["one","three","two","two","five","five","five"]
})


df
Name    part number detail1 detail2
A           1           A   one
B           3           C   three
C           2           B   two
D           1           B   two
E           5           E   five
F           1           E   five
G           2           E   five
Run Code Online (Sandbox Code Playgroud)

我想按零件号分组并用第一行值填充detail1和detail2。

我的预期输出,

Name    part number detail1 detail2
A       1           A       one
B       3           C       three
C       2           B       two
D       1           A       one
E       5           E       five
F …
Run Code Online (Sandbox Code Playgroud)

python group-by transform pandas

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

在 Pandas 中将一列列表扩展为多行

我有一个 Pandas 数据框,其中一列是一个列表。我想扩展这个列表。

我怎样才能做到这一点?

首先:

0 [{ first: 'jon', last: 'McSmith' }, { first: 'Jennifer', last: 'Foobar'}]
1 [{ first: 'dan', last: 'Raizman' }, { first: 'Alden', last: 'Lowe'}]

Name: players, dtype: object
Run Code Online (Sandbox Code Playgroud)

结尾:

   first         last
--------------------------
0  Jon           McSmith
1  Jennifer      Foobar
2  Dan           Raizman
3  Alden         Lowe
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

如何使用列中每个唯一元素的第一次出现对数据框进行排序?

数据框是

df = pd.DataFrame({"necmi": [0, 3, 14, 15, 2, 71, 8, 2, -1],
                   "fehmi": ["trial", "error", "manifest", "trial", "no", "only", "error", "no", "no"]})
Run Code Online (Sandbox Code Playgroud)

这是

   necmi     fehmi
0      0     trial
1      3     error
2     14  manifest
3     15     trial
4      2        no
5     71      only
6      8     error
7      2        no
8     -1        no
Run Code Online (Sandbox Code Playgroud)

所以我想fehmi根据条目的第一次出现对这个 df 进行排序,然后将它们组合在一起。想要的是

   necmi     fehmi
0      0     trial
1     15     trial
2      3     error
3      8     error
4     14  manifest
5      2        no
6      2 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

如何根据多个条件用字符串拆分 Pandas 数据框列

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

    ID       Col.A

28654      This is a dark chocolate which is sweet 
39876      Sky is blue 1234 Sky is cloudy 3423
88776      Stars can be seen in the dark sky
35491      Schools are closed 4568 but shops are open
Run Code Online (Sandbox Code Playgroud)

我试图Col.A在单词darkdigits. 我想要的结果如下。

     ID             Col.A                             Col.B
    
    28654      This is a                  dark chocolate which is sweet 
    39876      Sky is blue                1234 Sky is cloudy 3423
    88776      Stars can be seen in the   dark sky
    35491 …
Run Code Online (Sandbox Code Playgroud)

python regex dataframe pandas

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

Groupby 和基于特定行值的计算

我有看起来像这样的数据:

d = {'id' : [1, 1, 1, 2, 2, 2],
     'levels': ['low', 'perfect', 'high', 'low', 'perfect', 'high'],
     'value': [1, 10, 13, 2, 10, 13]}

df = pd.DataFrame(d, columns=['id', 'levels', 'value'])
df = df.groupby(['id','levels'])[['value']].mean()
Run Code Online (Sandbox Code Playgroud)

对于每一个[ID,等级],我想找到的区别value行和value中的perfect一行。它看起来像这样:

id | levels | value | penalty
1  | high   | 13    | 3
   | low    | 1     | 9
   | perfect| 10    | 0
2  | high   | 13    | 3
   | low    | 2     | 8
   | …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas pandas-groupby

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

Pandas 比较 3 列,如果计数大于 1 则输出结果

我有 3 列的值是 A、B 或 C 我想比较这 3 列并给出哪个值的输出超过 1 个计数。如果计数为平局,则输出将为“-”

输入:

    | col1  | col2  | col3  |
    |-------|-------|-------|
    | A     | A     | B     |
    | A     | B     | B     |
    | C     | B     | C     |
    | A     | B     | C     |
Run Code Online (Sandbox Code Playgroud)

输出:

    | col1  | col2  | col3  | Result|
    |-------|-------|-------|-------|
    | A     | A     | B     | A     |
    | A     | B     | B     | B     |
    | C     | B …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

在熊猫数据框中转置数据组

我有一个像这样的大数据框:

|type| qt  | vol|
|----|---- | -- |
| A  | 1   | 10 |
| A  | 2   | 12 |
| A  | 1   | 12 |
| B  | 3   | 11 |
| B  | 4   | 20 |
| B  | 4   | 20 |
| C  | 4   | 20 |
| C  | 4   | 20 |
| C  | 4   | 20 |
| C  | 4   | 20 |
Run Code Online (Sandbox Code Playgroud)

我怎样才能像这样水平分组转置到数据框? …

python dataframe pandas

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

如何在 Pandas 数据框中重新排序字符串并插入新字符串

我有一个如下所示的数据框。数据类型Output为字符串。

ID  Output
1   ab 1, bc 2, ac 5, at 0, abc 0 
2   ab 0, ac 5, at 0
3   ac 5, bc 0, atn 0
Run Code Online (Sandbox Code Playgroud)

如您所见,第 2 行bc被跳过,而整体顺序保持不变。但是,在 row3 中,顺序不同。如何首先插入缺失的类别,然后重新排序数据框中的字符串?换句话说,我怎样才能得到一个看起来像这样的中间数据框:

ID  Output
1   ab 1, bc 2, ac 5,  at 0,  abc 0, atn  
2   ab 0, bc,   ac 5,  at 0, abc,   atn
3   ab,   bc 0, ac 5,  at,   abc,   atn 0
Run Code Online (Sandbox Code Playgroud)

所以最终我可以执行以下操作:

x = df['Output'].str.split(",",expand=True,)
x.columns = x.iloc[0, :].str.extract(r"^(.*)\s+")[0]
x …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

标签 统计

python ×10

pandas ×9

dataframe ×8

group-by ×1

pandas-groupby ×1

regex ×1

transform ×1