如何从熊猫df中的x列中提取值,其中df中的y列== list(i)

时间:2020-04-02 07:59:33

标签: python pandas dataframe

很抱歉以前是否曾提出过类似的要求。

我有一个任务,需要一个提供unix次数列表和pandas df的函数。

pandas df的unix时间列,纬度列和经度列。

我需要从df中提取纬度,其中df Unix时间与我传递给函数的列表中的Unix时间相匹配。

到目前为止,我有:

`def nl_lat_array(pandas_df,unixtime_list):

lat = dict()

data = pandas_df




for x, row in data.iterrows():

        if data[data['DateTime_Unix']] == i in unixtime_list:
            lat[i] = data[data['Latitude']] 



v=list(lat.values())

nl_lat_array = np.array(v)

return nl_lat_array

这将导致以下错误:

KeyError:“ [Float64Index([1585403852.468,1585403852.518,1585403852.568,1585403852.618,\ n 1585403852.668,1585403852.718,1585403852.768,1585403852.818,\ n 1585403852.868,1585403852.918,\ n。\ n ... \ n ,\ n 1585508348.724、1585508348.774、1585508348.824、1585508348.874,\ n 1585508348.924、1585508348.974],\ n dtype ='float64',长度= 2089945)]在[列]中]“

但是pandas数组中的这些值确实存在于我要传递的列表中。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作。

[[1]]
 [1] "observation_date" "TERMCBAUTO48NS"  
 [3] "BAA10YM"          "AAA10YM"         
 [5] "TB3SMFFM"         "T5YFFM"          
 [7] "T10Y2YM"          "BAA"             
 [9] "AAA"              "TERMCBCCALLNS"   
[11] "MPRIME"           "TWEXBMTH"        
[13] "M1SL"             "M2SL"            
[15] "RMFSL"            "SVSTCBSL"        
[17] "BORROW"           "SEABORR"         
[19] "GDBFRM"           "DDDFCBNS"        
[21] "TSDFBOI"          "REQRESNS"        
[23] "DPCERA3M086SBEA"  "PSAVERT"         
[25] "DTTHFM"           "DTRTM"           
[27] "IPMAN"            "IPCONGD"         
[29] "CPIAUCSL"         "CPIHOSSL"        
[31] "CSUSHPINSA"       "FEDFUNDS"        
[33] "UNRATE"           "INDPRO"          
[35] "RECPROUSM156N"    "HOUST"           
[37] "SPASTT01USM661N"  "CP"              

答案 1 :(得分:0)

import pandas as pd
data = pd.DataFrame([[1,4,7],[2,5,8],[3,6,9]])
data.columns = ['time', 'lat', 'long']
time_list = [1,2]
d = data[data['time'].isin(time_list)]['lat'].values
# [4, 5]