如何使用for循环创建现有列的平方版本?

时间:2018-10-14 22:27:16

标签: python pandas loops

我正在使用Hitters.csv数据集,并尝试使用for循环创建现有定量列的平方形式。我在Hitters.csv中创建了所有定量列的数据集:

features_df = hitters_df.drop(['Salary', 'CAtBat', 'CHits', 'CHmRun', 'CRBI', 'CRuns', 'CWalks'], axis=1)

我是Python的初学者,没有循环经验。到目前为止,这是我所拥有的:

for i in features_df:
    print (i**2)

我如何进行这项工作?我需要使用字典吗?

1 个答案:

答案 0 :(得分:1)

Wrt “创建现有定量列的平方版本” ,假设您删除了所有个非数字列,则可以执行以下操作:

features_df = features_df.apply(np.square)
# or just
features_df = features_df ** 2

如果您未删除所有非数字列,并且您的hitters_df还包括带有文本数据的列(即dtype为object),则循环遍历这些列同时跳过错误或检查其是否为有效类型。或者更好的是,遍历only the numeric columns

for column in features_df.select_dtypes(include='number').columns:
    features_df[column] = features_df[column] ** 2