#python #pandas #dataframe #data-analysis
Вопрос:
Я просмотрел свои 24 файла excel и сохранил это имя файла во фрейме данных. таким образом, мой df1 содержит только одно значение, с каждой итерацией имя файла меняется.
df1:
Имя файла-Это дополнительный шаблон индекса CBSS
Затем вложенный цикл повторяется по листам этого файла excel и сохраняет это имя листа в фрейме данных 2.
df2:
Sheetname_t
Настраиваемый IP-адрес
Я хочу получить группировку из df3, где они оба совпадают. (частично)
df3:
Проще говоря, я хочу, чтобы:
если df1.Filename_t совпадает с df3.Filename
, то сопоставьте
, если df2.Sheetname_t совпадает с df3.Sheetname
, затем
верните соответствующее значение df3.Grouping.
Обратите внимание, что фактическое имя файла и его имя листа отличаются от сохраненных имен файлов и имен листов в df3. Это реальная проблема.
Я попытался использовать этот код для хранения группировки в df1, но это не сработало.
for tup in df3.itertuples(index=False):
print(tup)
mask = df1['Filename_t'].str.contains(tup.Filename, regex=False)
df1.loc[mask, 'Grouping'] = tup.Grouping
print(df1)
Также пробовал:
m= df3['Filename'].apply(lambda fname: any(word in fname for word in f))
print(m)
и:
pat = '(' '|'.join(df3['Filename'])` ')'
df_f["Grouping"] = df1['Filename_t'].str.extract(pat)[0].map(df3.set_index('Filename')['Grouping'].to_dict()).fillna('')
print(df1)