Проблема с индексом при слиянии двух наборов данныхPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с индексом при слиянии двух наборов данных

Сообщение Anonymous »

Мне нужен фрейм данных:
df_recap:
[img]https://i .sstatic.net/KnV5JuKG.png[/img]

и df23:
Изображение

Мне нужно скопировать «Количество» и «единицу измерения» из df23 в df_recap для этого списка кода (тип код Л2.3). Может присутствовать 2 или более элемента кода в df23 (в этом случае измеренная_единица уникальна, а количество представляет собой сумму значений/записей).
Изображение

С помощью этого кода:
`

Код: Выделить всё

# Carica i file CSV
df_semifinal = pd.read_csv('SemiFinal.csv')
df_l23 = pd.read_csv('L23.csv')

# 1. Raggruppa il dataset df_l23 per 'code', somma le quantità e mantiene il valore unico di 'measurement_unit'
df_l23_grouped = df_l23.groupby('code').agg({
'quantity': 'sum',                   # Somma i valori di 'quantity'
'measurement_unit': 'first'           # Mantiene il primo valore di 'measurement_unit' (assumendo sia uguale per lo stesso code)
})

# 2. Filtra le righe di df_semifinal dove 'Tipo Voce' è 'L2.3' e le colonne 'Quantità' o 'Unità di misura' sono NaN o '/'
mask = (df_semifinal['Tipo Voce'] == 'L2.3') & (
df_semifinal['Quantità'].isna() | df_semifinal['Quantità'].eq('/') |
df_semifinal['Unità di misura'].isna() | df_semifinal['Unità di misura'].eq('/')
)

# 3. Unisci il dataset df_semifinal con df_l23_grouped in base al 'Codice' di df_semifinal e 'code' di df_l23_grouped
df_merged = pd.merge(df_semifinal[mask], df_l23_grouped, left_on='Codice', right_on='code', how='left')

# 4. Sostituisci i valori mancanti o '/' nelle colonne 'Quantità' e 'Unità di misura' con i dati da df_l23_grouped
df_semifinal.loc[mask, 'Quantità'] = df_merged['quantity']
df_semifinal.loc[mask, 'Unità di misura'] = df_merged['measurement_unit']

# 5. Rimuovi eventuali colonne in eccesso come 'code' se non necessarie
df_semifinal.drop(columns=['code'], inplace=True, errors='ignore')

# 6. Salva il dataset aggiornato
df_semifinal
похоже, что возникла проблема с индексом:
[img]https://i .sstatic.net/WPHI59wX.png[/img]

значение L2.3 A.01.01.01 должно быть Quantity = 1 и A.02.01.01 Quantity = 1,36
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/790 ... 2-datasets
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»