Answers:
In [16]: df = DataFrame(np.arange(10).reshape(5,2),columns=list('AB'))
In [17]: df
Out[17]: 
   A  B
0  0  1
1  2  3
2  4  5
3  6  7
4  8  9
In [18]: df.dtypes
Out[18]: 
A    int64
B    int64
dtype: object转换系列
In [19]: df['A'].apply(str)
Out[19]: 
0    0
1    2
2    4
3    6
4    8
Name: A, dtype: object
In [20]: df['A'].apply(str)[0]
Out[20]: '0'不要忘记将结果分配回去:
df['A'] = df['A'].apply(str)转换整个框架
In [21]: df.applymap(str)
Out[21]: 
   A  B
0  0  1
1  2  3
2  4  5
3  6  7
4  8  9
In [22]: df.applymap(str).iloc[0,0]
Out[22]: '0'df = df.applymap(str)更改DataFrame列的数据类型:
要诠释:
df.column_name = df.column_name.astype(np.int64)
要str:
df.column_name = df.column_name.astype(str)
apply(str)在使用的测试中,它比@Jeff 慢4倍pd.Series(np.arange(1000000))。
                    df['A'] = df['A'].apply(str)也可以。@Jeff提供的答案对我不起作用。
                    apply()而不是astype():timeit.Timer('c.apply(str)',setup ='import pandas as pd; c = pd.Series(range( 1000))')。timeit(1000)>>> 0.41499893204309046 >>> timeit.Timer('c.astype(str)',setup ='import pandas as pd; c = pd.Series(range(1000))' ).timeit(1000)0.8004439630312845
                    警告:给定的两个解决方案( astype()和apply())都不以nan或None形式保留NULL值。
import pandas as pd
import numpy as np
df = pd.DataFrame([None,'string',np.nan,42], index=[0,1,2,3], columns=['A'])
df1 = df['A'].astype(str)
df2 =  df['A'].apply(str)
print df.isnull()
print df1.isnull()
print df2.isnull()我相信这是由to_string()的实现解决的