【问题标题】:Creating new dataframe by search result in df通过 df 中的搜索结果创建新数据框
【发布时间】:2023-01-27 22:49:06
【问题描述】:

我正在读取一个用于搜索变量的 txt 文件。

我正在使用此变量在数据框中找到它。

for lines in lines_list:
    sn = lines
    if sn in df[df['SERIAL'].str.contains(sn)]:
        
        condition = df[df['SERIAL'].str.contains(sn)]
        df_new = pd.DataFrame(condition)
        df_new.to_csv('try.csv',mode='a', sep=',', index=False)  

当我检查 try.csv 文件时,它的行数比 txt 文件多得多。 df 有很多行,比 txt 文件多。 我想将搜索结果中的整行保存到数据框或文件中

我试图将搜索结果附加到新的数据框或 csv。

【问题讨论】:

  • 如果第一个条件匹配 20 行,然后第二个条件匹配 10 行,则您的文件将包含 30 行。
  • 我在没有附加模式的情况下重新运行,文件甚至没有创建

标签: pandas dataframe search


【解决方案1】:

首先创建行列表

f = open("text.txt", "r")
l = list(map(lambda x: x.strip(), f.readlines()))

写这个应用函数有比较值和过滤

def apply_func(x):
    if str(x) in l:
        return x
    return np.nan

并获得输出

df["Serial"] = df["Serial"].apply(apply_func)
df.dropna(inplace=True)

df.to_csv("new_df.csv", mode="a", index=False)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2022-01-26
    • 2018-10-05
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    相关资源
    最近更新 更多