-1

別のデータフレームを使用して、データフレームの列からいくつかの行の欠落情報を完成させようとしています。最初df(dfPivote)の 2 つの列に関心 が'Entrega'あり'Transportador'、情報が欠落している列があります。2 番目の df ( )には、他の df のキーであるdfTransportadoEntregadoFaltante関心のある 2 つの列があり、他の df から欠落している情報があります。次のコードがありますが、機能していません。どうすればこの問題を解決できますか?'EntregaBusqueda''Transportador'

ここに画像の説明を入力

4

1 に答える 1

0

データフレーム操作を使用して欠損値を埋めることをお勧めします。サンプルコードに正しく従った場合、次のようなことをしようとしていると思います:

import pandas as pd
import numpy as np

# Create fake data
# "dfPivote" dataframe with an empty string in the "Transportador" column:  
dfPivote = pd.DataFrame({'Entrega':[1,2,3],'Transportador':['a','','c']})

# "dfTransportadoEntregadoFaltante" lookup dataframe
dfTransportadoEntregadoFaltante = pd.DataFrame({'EntregaBusqueda':[1,2,3], 'Transportador':['a','b','c']})


# 1. Replace empty strings in dfPivote['Transportador'] with np.nan values:

dfPivote['Transportador'] = dfPivote['Transportador'].apply(lambda x: np.nan if len(x)==0 else x)


# 2. Merge the two dataframes together on the "Entrega" and "EntregaBusqueda" columns respectively:

df = dfPivote.merge(dfTransportadoEntregadoFaltante, left_on='Entrega', right_on='EntregaBusqueda', how='left')

#   Entrega Transportador_x EntregaBusqueda Transportador_y
#       1       a       1       a
#       2       NaN     2       b
#       3       c       3       c


# 3. Fill NaNs in "Transportador_x" column with corresponding values in "Transportador_y" column:

df['Transportador_x'] = df['Transportador_x'].fillna(df['Transportador_y'])

#   Entrega Transportador_x EntregaBusqueda Transportador_y
#      1    a   1   a
#      2    b   2   b
#      3    c   3   c
于 2020-11-18T14:05:17.413 に答える