我有以下数据帧:
import pandas as pd
import numpy as np
df = pd.DataFrame(dict(A = np.arange(3),
B = np.random.randn(3),
C = ['foo','bar','bah'],
D = pd.Timestamp('20130101')))
print(df)
A B C D
0 0 -1.087180 foo 2013-01-01
1 1 -1.343424 bar 2013-01-01
2 2 -0.193371 bah 2013-01-01
Run Code Online (Sandbox Code Playgroud)
dtypes 对于列:
print(df.dtypes)
A int32
B float64
C object
D datetime64[ns]
dtype: object
Run Code Online (Sandbox Code Playgroud)
但在使用apply它们之后所有对象的更改:
print(df.apply(lambda x: x.dtype))
A object
B object
C object
D object
dtype: object
Run Code Online (Sandbox Code Playgroud)
为什么dtypes强迫反对?我认为apply只应在列中考虑.
pandas 0.17.1
python 3.4.3
您可以在此处使用参数reduce=False和更多信息:
print (df.apply(lambda x: x.dtype, reduce=False))
A int32
B float64
C object
D datetime64[ns]
dtype: object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1263 次 |
| 最近记录: |