Abandonné parce que j'étais accro aux démons.
>>> s1 = pd.Series(data=[10,20,30])
>>> s1
0 10
1 20
2 30
dtype: int64
>>> s2 = pd.Series(data=[100,200,300])
>>> s2
0 100
1 200
2 300
dtype: int64
Deux séries sont ajoutées en tant que colonne de DataFrame.
>>> df = pd.DataFrame()
>>> df[1]=s1
>>> df[2]=s2
>>> df
1 2
0 10 100
1 20 200
2 30 300
C'est facile.
>>> s1 = pd.Series(data=[10,20,30], index=[1,2,3])
>>> s1
1 10
2 20
3 30
dtype: int64
>>> s2 = pd.Series(data=[100,200,300], index=[2,3,4])
>>> s2
2 100
3 200
4 300
dtype: int64
Les index de s1 et s2 ne sont pas de 0, et il y en a qui ne sont pas en commun.
À ce stade, si vous l'ajoutez au DataFrame comme auparavant
>>> df[1]=s1
>>> df[2]=s2
>>> df
1 2
0 NaN NaN
1 10.0 NaN
2 20.0 100.0
Avec un nombre fixe, il entrera à partir de 0 sans autorisation.
Si vous voulez voir l'original s1 [3] et essayer de voir le contenu de df de force, une erreur se produira.
>>> s1[3]
30
>>> df[1][3]
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pandas/core/series.py", line 603, in __getitem__
result = self.index.get_value(self, key)
File "/usr/local/lib/python2.7/dist-packages/pandas/indexes/base.py", line 2169, in get_value
tz=getattr(series.dtype, 'tz', None))
File "pandas/index.pyx", line 98, in pandas.index.IndexEngine.get_value (pandas/index.c:3557)
File "pandas/index.pyx", line 106, in pandas.index.IndexEngine.get_value (pandas/index.c:3240)
File "pandas/index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas/index.c:4279)
File "pandas/src/hashtable_class_helper.pxi", line 404, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:8564)
File "pandas/src/hashtable_class_helper.pxi", line 410, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:8508)
KeyError: 3
Dans ce cas, utilisez `` `pandas.concat```.
>>> df = pd.DataFrame()
>>> df = pd.concat([df, s1], axis=1)
>>> df
0
1 10
2 20
3 30
>>> df = pd.concat([df, s2], axis=1)
>>> df
0 0
1 10.0 NaN
2 20.0 100.0
3 30.0 200.0
4 NaN 300.0
Si axis = 1
est entré dans l'argument, il sera ajouté dans le sens de la colonne. En outre,
numpy.nan``` est entré là où il n'y en a pas.
** Cependant, la colonne devient 0. ** ** Il semble qu'il ne puisse pas être spécifié par un argument, alors définissez d'abord Series sur un DataFrame unidimensionnel, puis concat.
>>> df = pd.DataFrame()
>>> df = pd.concat([df, pd.DataFrame(s1, columns=[1])], axis=1)
>>> df = pd.concat([df, pd.DataFrame(s2, columns=[2])], axis=1)
>>> df
1 2
1 10.0 NaN
2 20.0 100.0
3 30.0 200.0
4 NaN 300
Recommended Posts