Code: Select all
import numpy as np
import pandas as pd
data = np.empty((3, 4), dtype=[('cost', np.int32), ('count', np.int32)])
data['count'] = 0
data['cost'] = [[10, 2, 20, 11],
[12, 7, 9, 20],
[ 2, 14, 16, 18]]
sup = [1, 2, 3]
df = pd.DataFrame(data=data.tolist(), columns=[f'{i+1}' for i in range(len(data[0]))])
df = df.join(pd.DataFrame(sup, columns=['Supplies']))
print(df)
Code: Select all
1 2 3 4 Supplies
0 (10, 0) (2, 0) (20, 0) (11, 0) 1
1 (12, 0) (7, 0) (9, 0) (20, 0) 2
2 (2, 0) (14, 0) (16, 0) (18, 0) 3
Code: Select all
df.loc[1, '1'] = (1,2)
Das gleiche Problem tritt mit der Liste auf.“ . Die Zuweisung von nicht iterierbaren Datentypen wie String oder Integer funktioniert gut.
Als nächstes entferne ich diesen Join:
Code: Select all
df = df.join(pd.DataFrame(sup, columns=['Supplies']))
Ich vermute, dass das passiert, weil versucht wird, nicht eine einzelne Zelle zu aktualisieren (aber was?)< /p>
Mittlerweile funktioniert die Zuweisung mit df.at gut, aber warum nicht mit df.loc?
Code: Select all
df.at[1, '1'] = (1,2)