IBootWeb.com
Des questions Étiquettes
De nouvelles questions python

Ajouter une colonne si les données sont dans la liste - DataFrame dans Python Pandas?

J'ai DataFrame comme ci-dessous:

df = pd.DataFrame({"day" : ["A", "A", "B", "B"],
                    "data" : ["01.05.2019", "05.02.2019", "10.11.2019", "15.08.2018"]})
df["data"] = df["data"].astype("datetime64")

Et je liste de données: list = pd.to_datetime(['01.05.2019','15.08.2018', '25.07.2012'])

Et je dois ajouter à df column = "col1" où:
1 où df "day" = B et df "data" est dans "list"
0 sinon

J'ai donc besoin d'un résultat comme ci-dessous:

enter image description here

python pandas list dataframe date
0
jack55 15 janv. 2021 à 02:11

2 réponses

Meilleure réponse

Vous pouvez utiliser pandas.DataFrame.apply

df["col1"] = df.apply(lambda x: 1 if x.day == 'B' and x.data in dates else 0, axis = 1)
#  day       data  col1
#0   A 2019-01-05     0
#1   A 2019-05-02     0
#2   B 2019-10-11     0
#3   B 2018-08-15     1

PD: J'ai changé list en dates, veuillez ne pas utiliser ce nom.

0
Pablo C 14 janv. 2021 à 23:41

Vous pouvez utiliser isin. Et vous devez également ajouter dayfirst=True à to_datetime, sinon le 01.05.2019 deviendra le 05-01-2019.

df = pd.DataFrame({"day" : ["A", "A", "B", "B"],
                "data" : ["01.05.2019", "05.02.2019", "10.11.2019", "15.08.2018"]})
df["data"] = pd.to_datetime(df["data"], dayfirst=True)

li = pd.to_datetime(['01.05.2019','15.08.2018', '25.07.2012'], dayfirst=True)

df['col1'] = ((df.day == 'B') & df.data.isin(li)).astype('int')
0
Emma 14 janv. 2021 à 23:32
65728252

Questions connexes

31 Comment divisez-vous une liste en morceaux de taille égale?
21 Ajouter une ligne à pandas DataFrame
21 Renommer des colonnes dans les pandas
23 Ajout d'une nouvelle colonne à DataFrame existant dans les pandas Python
10 Supprimer la colonne de pandas DataFrame
13 Comment supprimer des lignes de Pandas DataFrame dont la valeur dans une certaine colonne est NaN
18 Comment parcourir les lignes d'un DataFrame dans Pandas?
9 Comment sélectionner des lignes à partir d'un DataFrame en fonction des valeurs de colonne?
19 Obtenir la liste des en-têtes de colonne Pandas DataFrame
6 Convertir la liste des dictionnaires en DataFrame pandas

Questions liées

4 La valeur de vérité d'une série est ambiguë. Utilisez a.empty, a.bool (), a.item (), a.any () ou a.all ()

De nouvelles questions

2 La variable globale est modifiée par une variable locale?
4 Comment attribuer la même valeur à plusieurs touches | python
1 Comment avoir plusieurs variables dans une fonction blit ()
1 Convertir une seule chaîne à l'intérieur de la liste en plusieurs chaînes à l'intérieur de cette même liste dans pandas
3 Pourquoi l'application flask que j'ai écrase-t-elle les données précédentes dans le fichier texte?
1 Comment attribuer une valeur dans la base de chaîne ForeignKey?
1 Remplissage aléatoire des valeurs NaN d'une colonne avec des valeurs de chaîne non nulles
1 Je souhaite ajouter une nouvelle feuille dans un fichier Excel créé à l'aide de .to_excel dans pandas
1 comment puis-je changer la valeur dans un python dataframe?
1 J'essaye de pré-remplir ma page d'édition dans django
Toutes les questions sur python >

python

Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.

Plus à propos python...

IBootWeb.com
python javascript php java
html css reactjs jquery