python - 强制所有列都是 pandas 中的字符串

标签 python pandas

我有以下数据框:

>>> data = {'col_1': ['1','2','3'], 'col_2': ['a', 'b', 'c', 'd']}
>>> df=pd.DataFrame.from_dict(data) # <== I want to modify this statement

>>> df.dtypes
col_1     int64
col_2    object
dtype: object

请注意,col_1 已被推断为 int64 列。有没有一个简单的方法,我可以为我拥有的每一列执行“forceType=object”?数据已经预先格式化,我不需要 pandas 来标记任何内容。

最佳答案

假设列表长度相等,您可以为 from_dict 指定 dtype=object 参数。 'object' 指定不对列进行任何转换,因此它们按原样加载。

data = {'col_1': ['1','2','3'], 'col_2': ['a', 'b', 'c']}
df = pd.DataFrame.from_dict(data, dtype=object)

df
  col_1 col_2
0     1     a
1     2     b
2     3     c

df.dtypes

col_1    object
col_2    object
dtype: object
<小时/>

如果大小不均匀的列表将成为问题,您可以以相同的方式使用 'index' 方向加载并转置结果:

data = {'col_1': ['1','2','3'], 'col_2': ['a', 'b', 'c', 'd']}
df = pd.DataFrame.from_dict(data, orient='index', dtype=object).T
df

  col_1 col_2
0     1     a
1     2     b
2     3     c
3  None     d

df.dtypes

col_1    object
col_2    object
dtype: object

关于python - 强制所有列都是 pandas 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53900899/

相关文章:

python - 处理Python HTTP连接超时

python - 根据组的子数据框必须包含

python - 如何替换整个数据集中的值?

python - Pandas:查找空/缺失值并将其添加到 DataFrame 中

python - 仅将属于最大组的行保留在 pandas 中

python - 如何检测已运行的 Python 脚本的其他副本

python - 如何在我的 Discord 机器人中正确解析标记用户?

python - 如何从连接 URI 中的 SQL 密码转义 `@` 字母

python - Matplotlib 数学文本 : Glyph errors in tick labels

python - Pandas - 删除多个空列