Ich möchte bestimmte Zeilen in einen Datenrahmen einfügen. Der Datenrahmen enthält Spalten für ID, Stundenname und Anzahl. Ich möchte Zeilen in die Stunden (0-23) einfügen, die keine Daten enthalten. Dies ist mein Datenrahmen,
index id hourname count
0 a 0 1
1 a 4 1
2 a 14 1
3 a 15 3
4 a 17 1
5 a 20 1
Und das möchte ich erreichen
index id hourname count
0 a 0 1
1 a 1 0
2 a 2 0
3 a 3 0
4 a 4 1
5 a 5 0
6 a 6 0
7 a 7 0
8 a 8 0
9 a 9 0
10 a 10 0
11 a 11 0
12 a 12 0
13 a 13 0
14 a 14 1
15 a 15 3
16 a 16 0
17 a 17 1
18 a 18 0
19 a 19 0
20 a 20 1
21 a 21 0
22 a 22 0
23 a 23 0
Ich greife nach Daten aus einer CSV-Datei, hier ist der Dateiinhalt (Name der Datei ist a.csv im Quellcode)
,id,hourname,count
0,a,0,1
1,a,4,1
2,a,14,1
3,a,15,3
4,a,17,1
5,a,20,1
Und hier ist mein Quellcode
import csv
import pandas as pd
import numpy as np
result4 = pd.read_csv("a.csv")
print(result4)
for i in range(0,23):
if result4.loc[i, 'hourname'] != i:
line = pd.DataFrame({"id": "a", "hourname": i, "count":0}, index=[i])
result4 = result4.append(line, ignore_index=False)
result4 = result4.sort_index().reset_index(drop=True)
print(result4)
2 Antworten
Ich hoffe das beantwortet deine Frage?
import pandas as pd
x = [0, 4, 14, 15, 17, 20]
y = [1, 1, 1, 3, 1, 1]
k = list(range(0,24))
i = list(set(k) - set(x))
for itm in i:
x.insert(itm,itm)
y.insert(itm, 0)
data = {'id': len(x) * ['a'], 'hourname': x, 'count': y}
df = pd.DataFrame(data)
print(df)
Ich habe einfach eine Liste k
erstellt, die Ganzzahlen von 0 bis 23 enthält, und dann habe ich den Unterschied zwischen list x
und list k
als list i
erhalten. Danach habe ich list i
durchlaufen und seine Elemente zu list x
und Nullen an benachbarten Anzeigen in list y
hinzugefügt.
Versuchen,
hours_df = pd.DataFrame({'hourname': range(0,23)})
df = your_df.merge(hours_df, how='right', on='hourname')
Dies gibt Ihnen alle Stunden. Dann füllen Sie die fehlende ID und zählen
df['id'] = df['id'].ffill()
df['count'] = df['count'].fillna(0)
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.