如何在没有标题的数据框中定位行

时间:2016-12-05 22:58:01

标签: python pandas dataframe

我注意到在pandas数据帧中使用.loc时,它不仅会找到我要查找的数据行,还会包含我正在搜索的数据帧的标题列名称。

因此,当我尝试附加.loc数据行时,它会包含数据+列标题 - 我不想要任何列标题!

##1st dataframe
df_futures.head(1)
date     max    min
19990101 2000   1900

##2nd dataframe
df_cash.head(1)
date$   max$   min$
1999101 50     40

##if date is found in dataframe 2, I will collect the row of data
data_to_track = []

for ii in range(len(df_futures['date'])):
    ##date I will try to find in df2
    date_to_find = df_futures['date'][ii]

    ##append the row of data to my list
    data_to_track.append(df_cash.loc[df_cash['Date$'] == date_to_find])     

我希望for循环只返回19990101 50 40

目前返回0 19990101 50 40,日期$,最大$,最小$

1 个答案:

答案 0 :(得分:1)

对于这个问题的清晰度,我同意其他意见。但是,如果要获取的只是一个包含特定行数据的字符串,则可以使用Pandas的to_string()方法。

就您而言,

代替此:

df_cash.loc[df_cash['Date$'] == date_to_find]

您可以获得一个仅包含行数据的字符串:

df_cash[df_cash['Date$'] == date_to_find].to_string(header=None)

还请注意,我删除了.loc部分,该部分将输出相同的结果。

如果您的数据框具有多个列,并且您不希望它们以字符串形式连接(可能会带来数据类型问题,并且如果以后要分离它们,则可能会出现问题),则可以使用list()方法,例如:

list(df_cash[df_cash['Date$'] == date_to_find].iloc[0])