Pandas Concat führt keine Kopie durch, wenn einer der Datenrahmen leer istPython

Python-Programme
Anonymous
 Pandas Concat führt keine Kopie durch, wenn einer der Datenrahmen leer ist

Post by Anonymous »

Betrachten Sie dieses Beispiel:

Code: Select all

import pandas as pd
df_part1 = pd.DataFrame()
df_part2 = pd.DataFrame({'A': [1,1], 'B': [3,4]})
df_concat_out = pd.concat([df_part1, df_part2])
print("id(df_part2.values) == id(df_concat_out.values):", id(df_part2.values) == id(df_concat_out.values))

df_part2.B *= -1
df_concat_out_2 = pd.concat([df_concat_out, df_part2])
print(df_concat_out_2)
Die Ausgabe ist

Code: Select all

id(df_part2.values) == id(df_concat_out.values): True

A  B
0  1 -3
1  1 -4
0  1 -3
1  1 -4
Ist das das erwartete Verhalten? Zumindest für mich wird es nicht erwartet. Der Standardwert des Kopierparameters für concat sollte „True“ sein, aber in diesem Fall wird offensichtlich keine Kopie erstellt. Warum? Ich schätze, es versucht clever zu sein und eine Kopie scheint hier nicht unbedingt notwendig zu sein, aber ich denke, dieses Beispiel zeigt, dass es definitiv notwendig IST.
Dies ist auf Pandas 2.1.4. Habe die allerneueste Version nicht überprüft.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post