У меня есть DataFrame. Два соответствующих столбца: столбец int, а другой - столбец str.
Я понимаю, что если я вставляю NaN в столбец int, Pandas преобразует все int в float, потому что для int нет значения NaN.
Однако, когда я вставляю None в столбец str, Pandas также преобразует все мои int в float. Это не имеет смысла для меня - почему значение, которое я помещаю в столбце 2, влияет на столбец 1?
Вот простой рабочий пример (Python 2):
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. -
Мне также нужны данные, вставленные по строкам.