在特定数据集中,我有一列“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
有人可以告诉我这有什么不正确吗?
最佳答案
数据框中的列是 pd.Series 类的对象
您可以首先向数据框添加一个新列:
df['New_Star'] = df.apply(lambda x: 1 if x == 'X' else 0 , axis=1)
您现在可以获得仅包含 New_Star
列的数据框:
new_star_df = df[['New_Star']]
注意双括号,使用单括号您将返回 pd.Series,而不是 pd.DataFrame
关于python - 在 Python 中转换为数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36120140/