我有一个Python pandas DataFrame,其中每个元素都是float或NaN.对于每一行,我需要找到保存行的第n个数字的列.也就是说,我需要让列保存不是NaN的行的第n个元素.我知道第n列总是存在.
因此,如果n为4,则称为myDF的pandas数据帧如下:
10 20 30 40 50 60 70 80 90 100
'A' 4.5 5.5 2.5 NaN NaN 2.9 NaN NaN 1.1 1.8
'B' 4.7 4.1 NaN NaN NaN 2.0 1.2 NaN NaN NaN
'C' NaN NaN NaN NaN NaN 1.9 9.2 NaN 4.4 2.1
'D' 1.1 2.2 3.5 3.4 4.5 NaN NaN NaN 1.9 5.5
Run Code Online (Sandbox Code Playgroud)
我想得到:
'A' 60
'B' 70
'C' 100
'D' 40
Run Code Online (Sandbox Code Playgroud)
我可以:
import pandas as pd
import math
n = some arbitrary int
for …Run Code Online (Sandbox Code Playgroud) 我有一个非常大的熊猫数据框,大约有500,000列.每列长约500个元素.对于每列,我需要检索列中top-k元素的(索引,列)位置.
所以,如果k等于2,这就是我的数据框:
A B C D
w 4 8 10 2
x 5 1 1 6
y 9 22 25 7
z 15 5 7 2
Run Code Online (Sandbox Code Playgroud)
我想回来:
[(A,y),(A,z),(B,w),(B,y),(C,w),(C,y),(D,x),(D,y)]
Run Code Online (Sandbox Code Playgroud)
请记住,我有大约500,000列,所以速度是我的主要关注点.有没有合理的方法可以在我的机器上花费整整一周的时间?什么是最快的方式 - 即使它足够快我的数据量?
谢谢您的帮助!