我可以像这样向 Pandas DataFrame 添加分类列:
import pandas as pd
label_type = pd.api.types.CategoricalDtype(categories=["positive", "negative"], ordered=False)
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
# Create a new column, setting the value universally to "positive"
df['label'] = pd.Series(["positive"] * len(df), dtype=label_type).values
这没有其他类型的速记那么优雅:
df['label2'] = "positive" # sets entire column to str("positive")
但似乎底层类型只是str
print(type(df['label'].iloc[0]))
<class 'str'>
因此,熊猫似乎必须提前知道列类型。
有没有办法在不手动构建的情况下将分类列添加到数据框中Series?例如,
df['label3'] = label_type("positive")