将熊猫列转换为特定位置的列表

时间:2020-02-10 19:53:25

标签: python pandas keras

我有一张擅长的数字表。这些是我固定的可能的读数。有数百个。我有所有可能的读数的数据,很遗憾没有运行数字。如果您进一步阅读,该职位很重要。

示例工作表,位置不变:

         Readings
0        1111        
1        1234
2        1243
3        9999
4        1237
5        1412
 ...
999      8878

现在星期一我必须重新读一读,比如说5个(实际上更多,但是为了简单起见,是5个)。

熊猫数据框:

       Taken
0     9999
1     9999
2     1237
3     8878
4     1412

我想将它们表示为显示发生次数的列表。如果出现X次,则为X;否则为0。因此,这5个读数将是:

[0,0,0,2,1,1,1,.... 0]

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

此代码可能是解决您的问题的好方法:

import pandas as pd
df1 = pd.DataFrame({"Readings":[1111,1234,1243,9999,1237,1412,8878]})
df2 = pd.DataFrame({"Taken":[9999,9999,1237,8878,1412]})

def checkOcurrance(val):
    count = 0
    try:
        count = df2["Taken"].value_counts()[val]
    except:
        pass
    return count

df1["Ocurrance"] = df1["Readings"].apply(checkOcurrance)

然后df1将导致:

>>> df1
   Readings  Ocurrance
0      1111          0
1      1234          0
2      1243          0
3      9999          2
4      1237          1
5      1412          1
6      8878          1

您可以将Ocurrance列传递给list,以最终获得列表,如下所示:

out = df1["Ocurrance"].tolist()

结果:

>>> out
[0L, 0L, 0L, 2L, 1L, 1L, 1L]