在Python中转换为数据框架

时间:2016-03-20 21:59:31

标签: python dataframe

在特定的数据集中,我有一个列'starCustomer',它接受这些值:

[0, X, 0, 0, X, 0, X,...]

也就是说,如果该人不是明星客户,则每个观察将包含0,如果该人是,则每个观察将包含X.我认为将每个X表示为1更好一点,所以,我编写了以下代码:

Star = df['starCustomer']
New_Star = [1 if x == 'X', else 0 for x in Star]

然而,据我所知,New_Star不是我们想要的数据框架。所以,我尝试执行以下代码:

Star = pd.DataFrame(New_Star)

但是,我收到以下错误:

TypeError: 'list' object is not callable

有人可以告诉我这是不正确的吗?

2 个答案:

答案 0 :(得分:1)

数据框中的列是类pd.Series

的对象

您可以先向数据框添加新列:

.

现在,您可以获取仅包含@|[.](?!.*@)列的数据框:

df['New_Star'] = df.apply(lambda x: 1 if x == 'X' else 0 , axis=1)

注意双括号,使用单个括号返回pd.Series,而不是pd.DataFrame

答案 1 :(得分:0)

如果我理解你的话,你可以这样做:

New_Star = Star.map({0: 0, "X": 1})