我有一张擅长的数字表。这些是我固定的可能的读数。有数百个。我有所有可能的读数的数据,很遗憾没有运行数字。如果您进一步阅读,该职位很重要。
示例工作表,位置不变:
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]
有没有办法做到这一点?
答案 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]