by Guest » 31 Dec 2024, 14:50
Code: Select all
import pandas as pd
# Creating a DataFrame with some sample data
data = {
'Name': [Jason, 'Emma', 'Alex', 'Sarah'],
'Age': [28, 24, 32, 27],
'City': ['New York', 'London', 'Paris', 'Tokyo'],
'Salary': [75000, 65000, 85000, 70000]
}
df = pd.DataFrame(data)
# Display the DataFrame
print(df)
I want to update Jason’s age, and I do so with
df['Age'][df['Name'] == 'Jason'] = 29
Bei Code wie dem oben gezeigten Code kann es sein, dass der df Jasons Alter auf 29 aktualisiert, aufgrund der verwendeten verketteten Indizierung.
In der Dokumentation
https://pandas.pydata.org/pandas-docs/s ... ersus-copy wird erwähnt, dass .iloc/.loc eine bessere Option ist. Zum Beispiel so etwas wie das Folgende.
Code: Select all
df.loc[df['Name'] == 'Jason', 'Age'] = 29
Es ist jedoch nicht klar, welche Best Practices für Tupel wie die folgenden gelten.
Code: Select all
df[('Age', df['Name'] == 'Jason')] = 29
Ich versuche zu verstehen, wie sich die Verwendung von Tupeln mit der Verwendung von .iloc/.loc und der Verwendung von verketteter Indizierung im Kontext von Best Practices in Pandas vergleichen lässt. Zu den Überlegungen können zeitliche Komplexität, räumliche Komplexität, Codelesbarkeit usw. gehören.
[code]import pandas as pd
# Creating a DataFrame with some sample data
data = {
'Name': [Jason, 'Emma', 'Alex', 'Sarah'],
'Age': [28, 24, 32, 27],
'City': ['New York', 'London', 'Paris', 'Tokyo'],
'Salary': [75000, 65000, 85000, 70000]
}
df = pd.DataFrame(data)
# Display the DataFrame
print(df)
I want to update Jason’s age, and I do so with
df['Age'][df['Name'] == 'Jason'] = 29
[/code]
Bei Code wie dem oben gezeigten Code kann es sein, dass der df Jasons Alter auf 29 aktualisiert, aufgrund der verwendeten verketteten Indizierung.
In der Dokumentation https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#indexing-view-versus-copy wird erwähnt, dass .iloc/.loc eine bessere Option ist. Zum Beispiel so etwas wie das Folgende.
[code]df.loc[df['Name'] == 'Jason', 'Age'] = 29
[/code]
Es ist jedoch nicht klar, welche Best Practices für Tupel wie die folgenden gelten.
[code]df[('Age', df['Name'] == 'Jason')] = 29
[/code]
Ich versuche zu verstehen, wie sich die Verwendung von Tupeln mit der Verwendung von .iloc/.loc und der Verwendung von verketteter Indizierung im Kontext von Best Practices in Pandas vergleichen lässt. Zu den Überlegungen können zeitliche Komplexität, räumliche Komplexität, Codelesbarkeit usw. gehören.