我正在用熊猫动态地建造一个df。其中,我希望添加新数据(元素)时默认为特定类型或值,而不是nan。这有可能吗?像这样:
import pandas as pd
df = pd.DataFrame()
df.at[1,["a","b","c"]] = "a"
df.at[2,["a","c"]] = "b"
print(df) 你有:
a b c
1 a a a
2 b NaN b其中,df.at2,"b“被pd默认设置为"nan",但我希望它可以默认为空字符串(”“);
当我动态地创建这个df时,我不想使用pd.isna()或替换()来检查和分配每个循环中的值;
有没有一种方法,比如在初始pd时将这个pd设置为string类型?比如:df = pd.DataFrame(dtype=str) (我试过了,但似乎没有工作)
-更新
完整的代码类似于:
df = pd.DataFrame()
for loop:
df.at[1,["a","b"]] = "a"
df.at[2,["a"]] = "b"
x = df.at[2,"b"] + "hi"如果我以前不使用一些x来检查nan,那么其中的一行是错误的(浮点类型+字符串类型)。
在这种情况下,我认为df.fillna("")比isna()/replace()要好得多,但仍然有一点限制。请再说一遍:)
发布于 2022-04-26 10:03:55
在数据文件创建之后使用df.fillna("")如何?通过这种方式,可以用指定的值填充nan值。
import pandas as pd
df = pd.DataFrame()
df['a'] = ["a","b","c"]
df['b'] = ["a","c", np.nan]
df = df.fillna("")然后,你拿着这个
a b
0 a a
1 b c
2 c https://stackoverflow.com/questions/72011953
复制相似问题