首页 > 解决方案 > python pandas:满足条件并为其赋值

问题描述

我真的希望你能在这里帮助我......我需要将标签(df_label)分配给数据框(df_data)中的确切文件,并将每个文件中出现的所有标签保存在单独的txt文件中(这很简单)

df_data:

              file_name  file_start   file_end
0   20190201_000004.wav       0.000   1196.000
1   20190201_002003.wav    1196.000   2392.992
2   20190201_004004.wav    2392.992   3588.992
3   20190201_010003.wav    3588.992   4785.984
4   20190201_012003.wav    4785.984   5982.976
df_label:
Begin Time (s)
0     27467.100000
1     43830.400000
2     43830.800000
3     46378.200000

我试图切换到 np.array 并使用 for loop 和 np.where 但没有任何成功......

标签: pythonpandasdataframeconditional-statements

解决方案


如果 中的时间值df_label恰好属于 中的一个条目df_data,则可以使用以下

def get_file_name(begin_time):
    file_names = df_data[
        (df_data["file_start"] <= begin_time)
         & (df_data["file_end"] >= begin_time)
    ]["file_name"].values
    return file_names.values[0] if file_names.values.size > 0 else None

df_label["file_name"] = df_label["Begin Time (s)"].apply(get_label)

file_name这将添加另一个 coldf_label


推荐阅读