小编Erf*_*fan的帖子

熊猫合并两列与自定义文本

我有以下数据框

df1 = pd.DataFrame({'Name': ['A0', 'A1', 'A2', 'A3', 'A4'],
                    'Buy': [True, True, False, False, False],
                    'Sell': [False, False, True, False, True]
                   },
                   index=[0, 1, 2, 3, 4])
df1

    Name    Buy Sell
0   A0  True    False
1   A1  True    False
2   A2  False   True
3   A3  False   False
4   A4  False   True
Run Code Online (Sandbox Code Playgroud)

我想合并 Buy 和 Sell 列的条件是,如果“Buy”具有 True 价值,则“Buyer”,如果“Sell”具有 True 价值,则“Seller”,如果“Buy”和“Sell”都具有 False 价值,那么它应该有“NA”

sample required output

    Name    Type 
0   A0      Buyer
1   A1      Buyer
2   A2      Seller
3   A3      NA
4 …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

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

删除pandas数据框中列的小数点

我有一个数据框,例如:

query   qstart  qend    name    number  strand
A       2.0     1064.0  None    0       +
B       2.0     1076.0  None    0       +
C       2.0     1064.0  None    0       +
D       0.0     741.0   None    0       +
Run Code Online (Sandbox Code Playgroud)

我想删除所有小数并得到:

query   qstart  qend    name    number  strand
A       2       1064    None    0       +
B       2       1064    None    0       +
C       2       1064    None    0       +
D       0       741     None    0       +
Run Code Online (Sandbox Code Playgroud)

我试过:

df['qstart']= round(df['qstart'])
df['qend']= round(df['qend'])
Run Code Online (Sandbox Code Playgroud)

但它不起作用......

python-3.x pandas

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

如何有效地从列表字典中提取元素?

这是我最初的字典:

dic = {'key1': [2,3],
       'key2': [5,1],
       'key3': [6,8]}
Run Code Online (Sandbox Code Playgroud)

注意:为了示例的目的,我使用简单的数字 2,3 等(我这边的 dfs 列表)。

对于每个键,我想提取第一个元素并获得以下结果:

dic2 = {'key1': 2,
        'key2': 5,
        'key3': 6}
Run Code Online (Sandbox Code Playgroud)

是否可以在不进行缓慢的 for 循环的情况下做到这一点?字典还蛮大的...

非常感谢您的帮助。

python dictionary

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

匿名数据/替换名称

通常我通过使用 hashlib 和使用 .apply(hash) 函数来匿名化我的数据。

现在我正在尝试一种新方法,想象一下我必须遵循名为“数据”的 df:

df = pd.DataFrame({'contributor':['eric', 'frank', 'john', 'frank', 'barbara'],
                   'amount payed':[10,28,49,77,31]})

  contributor  amount payed
0        eric            10
1       frank            28
2        john            49
3       frank            77
4     barbara            31
Run Code Online (Sandbox Code Playgroud)

我想通过转动名称全部变成匿名化person1person2等等,是这样的:

output = pd.DataFrame({'contributor':['person1', 'person2', 'person3', 'person2', 'person4'],
                       'amount payed':[10,28,49,77,31]})

  contributor  amount payed
0     person1            10
1     person2            28
2     person3            49
3     person2            77
4     person4            31
Run Code Online (Sandbox Code Playgroud)

所以我的第一个虽然是总结name列,以便名称附加到唯一索引,我可以使用该索引作为“person”之后的数字。

hash anonymize pandas

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

如何计算一个值重复最少次数的次数

我有一个包含两列的数据框。第一个是time从 1 开始计数。

重要的是一堆 1 和 0。我想知道 1 重复特定的 n 次有多少次。例如,假设我有 100 个随机放置的 1 和 0 的值,我想知道有多少次连续出现至少 5 个 1。这意味着我想知道它重复 5、6、7 或任何更大次数的次数。

以前有人做过类似的事情吗?

python pandas

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

在文本列上使用 Pandas 滚动功能

我有一个 pandas 数据框,其中包含字符串格式的列值和日期时间索引。我想创建一个新列,其中包含过去两天的列值列表。使用 pandas 可以实现这一点吗?

原始数据农场:

        date col1 col2
0 2018-07-08    a    b
1 2018-07-09    c    d
2 2018-07-10    e    f
3 2018-07-11    g    h
4 2018-07-12    i    j
5 2018-07-13    k    l
6 2018-07-14    m    n
Run Code Online (Sandbox Code Playgroud)

最终数据框:

        date col1 col2  col3
0 2018-07-08    a    b   NaN
1 2018-07-09    c    d   NaN
2 2018-07-10    e    f  b, d
3 2018-07-11    g    h  d, f
4 2018-07-12    i    j  f, h
5 2018-07-13    k    l  h, j
6 2018-07-14    m    n …
Run Code Online (Sandbox Code Playgroud)

python-3.x pandas

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

如何在熊猫中制作一个简单的频率表

我需要在Pandas数据框中按行计算1到5的整数。例如,对于

import pandas as pd

df = pd.DataFrame({'c1': [3, 1, 2], 'c2': [3, 3, 3], 'c3': [2, 5, None], 'c4': [1, 2, 3]})

   c1  c2   c3  c4
0   3   3  2.0   1
1   1   3  5.0   2
2   2   3  NaN   3    
Run Code Online (Sandbox Code Playgroud)

将创建以下内容:

   n1  n2  n3  n4  n5
0   1   1   2   0   0
1   1   1   1   0   1
2   0   1   2   0   0
Run Code Online (Sandbox Code Playgroud)

我遇到过.value_countscrosstab,但是我只是无法设置其中之一来获取我需要的东西。任何帮助将非常感激。

提前致谢!

python pandas

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

按条件和列中的最小值过滤 Pandas 数据框

我有一个类似于

  test_a test_b  metric_e
0     OK    NOK        12
1     OK     OK         7
2     OK    NOK         2
3     OK     OK        55
Run Code Online (Sandbox Code Playgroud)

我想按一个条件过滤,这意味着test_a == OK并捕获metric_e. 我可以用两行来完成,复制一个数据帧:

df_t = df[df.test_a == 'OK'].reset_index(drop=True)
df_t.iloc[df_t.metric_e.idxmin()].to_frame()

test_a | test_b | metric_e
OK     |  NOK   | 2
Run Code Online (Sandbox Code Playgroud)

有没有办法在不必使用中间数据帧的情况下做到这一点?

python pandas

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

如何根据熊猫中的行值创建新列

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

    time  speaker  label_1  label_2
0   0.25        1       10        4
1   0.25        2       10        5
2   0.50        1       10        6
3   0.50        2       10        7
4   0.75        1       10        8
5   0.75        2       10        9
6   1.00        1       10       11
7   1.00        2       10       12
8   1.25        1       11       13
9   1.25        2       11       14
10  1.50        1       11       15
11  1.50        2       11       16
12  1.75        1       11       17
13  1.75        2       11       18
14  2.00        1       11       19 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

从数组中的一组字符串中提取 ID 和值

我在解决以下问题时遇到困难。

我有一个df['subjects']有字符串列表的熊猫。

df['subjects'].head(3) = 

0['B:1187', 'B:1188', 'P:123456', 'B:62']
1['G:1', 'G:1C', 'G:21', 'G:3', 'G:30']
2['B:71', 'E:D', 'G:6J', 'P:125467', 'B:1296', 'P:789456']
Run Code Online (Sandbox Code Playgroud)

基本上我需要的是以下内容..

df['subjects'] = 
123456
None
125467,789456
Run Code Online (Sandbox Code Playgroud)

我只需要返回具有的值 P:XXXXX

我试过使用 for 循环,但我一直得到错误的值。

python pandas

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

标签 统计

pandas ×9

python ×7

python-3.x ×3

anonymize ×1

dictionary ×1

hash ×1