web-dev-qa-db-fra.com

Tout moyen plus simple d'affecter plusieurs colonnes dans Python J'aime r données.table: =

Je me demande s'il y a un moyen plus simple d'attribuer plusieurs colonnes à Python, comme le := dans r data.table.

Par exemple, IN Python Je devrais écrire comme ceci:

df['Col_A'] = df.A/df.B
df['Col_B'] = df.C/df.D
df['Col_C'] = df.E/df.F * 1000000    
df['Col_D'] = df.G/df.H * 1000000

Cependant, il s'agit d'une seule ligne de code dans R data.table:

df[, ':='(Col_A = A/B, Col_B = C/D, Col_C = E/F*1000000, Col_B = G/H*1000000)]
5
Jiamei

Est-ce que quelque chose comme ça fonctionne pour vous:

import pandas as pd

df = pd.DataFrame()

# fake data
a = [1,2,3]
b = None, None, None
c = True, False, True

# assign to df
df[["a", "b", "c"]] = np.asarray([a, b, c]).transpose((1, 0))

quels rendements

   a     b      c
0  1  None   True
1  2  None  False
2  3  None   True

Bien que l'on dirait que l'écriture du code sur plusieurs lignes le rend plus lisible.

0
Kevin Hillairet