Comment puis-je fusionner deux trames de données en place dans des pandas?Fusion externe de deux trames de données en place dans les pandas
Par exemple, supposons que nous avons ces deux trames de données:
import pandas as pd
s1 = pd.DataFrame({
'time':[1234567000,1234567005,1234567009],
'X1':[96.32,96.01,96.05]
},columns=['time','X1']) # to keep columns order
s2 = pd.DataFrame({
'time':[1234567001,1234567005],
'X2':[23.88,23.96]
},columns=['time','X2']) # to keep columns order
Ils pourraient être fusionnés avec pandas.DataFrame.merge (s3 = pd.merge(s1,s2,how='outer')
) ou avec pandas.merge (s3=s1.merge(s2,how='outer')
), mais il est pas en place. Au lieu de cela, j'aimerais que la trame de données fusionnée remplace s1 en mémoire.
Etes-vous sûr d'éviter les copies? Il y a un 'copy' kwarg que [" * If False, ne pas copier les données inutilement * "] (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html), mais jouer avec et 'np.share_memory' suggère que dans votre exemple le résultat est toujours copié. Ce qui n'est pas si surprenant, étant donné que la base de données résultante est assez différente des originaux. Mais je ne suis pas très expérimenté avec les pandas, donc mes impressions pourraient être loin. –
Que voulez-vous dire "il n'est pas en place"? Qu'essayez-vous d'accomplir? –
@AndrewL J'aimerais que la trame de données fusionnée remplace s1 en mémoire. –