阻止Pandas将整数转换为浮点数,因为在另一列中进行了插入。
- 论坛
- 阻止Pandas将整数转换为浮点数,因为在另一列中进行了插入。
20 浏览
阻止Pandas将整数转换为浮点数,因为在另一列中进行了插入。
我有一个包含两列的DataFrame:一列是int类型,一列是str类型。
我知道,如果我在int列中插入NaN,Pandas会将所有的int转换为float,因为int类型中没有NaN值。
然而,当我在str列中插入None时,Pandas也会将所有的int转换为float。这对我来说没有意义,为什么我在第二列中放入的值会影响第一列呢?
以下是一个简单的工作示例:
import pandas as pd df = pd.DataFrame() df["int"] = pd.Series([], dtype=int) df["str"] = pd.Series([], dtype=str) df.loc[0] = [0, "zero"] print(df) print() df.loc[1] = [1, None] print(df)
输出结果是:
int str 0 0 zero int str 0 0.0 zero 1 1.0 NaN
有没有办法使输出结果如下:
int str 0 0 zero int str 0 0 zero 1 1 NaN
而不需要重新将第一列转换为int类型呢?
- 我更喜欢使用int而不是float,因为该列中的实际数据是整数。如果没有解决办法,我会使用float。
- 我不想重新转换类型,因为在我的实际代码中,我没有存储实际的dtype。
- 我还需要逐行插入数据。