Python在循环中创建新列
我试图通过划分两列来为每列创建一个新列。df是一个数据帧Python在循环中创建新列,python,loops,pandas,Python,Loops,Pandas,我试图通过划分两列来为每列创建一个新列。df是一个数据帧 columns = list(df.columns.values) for column_1 in columns: for column_2 in columns: new_column = '-'.join([column_1,column_2]) df[new_column] = df[column_1] / df[column_2] 获取错误:NotImplemente
columns = list(df.columns.values)
for column_1 in columns:
for column_2 in columns:
new_column = '-'.join([column_1,column_2])
df[new_column] = df[column_1] / df[column_2]
获取错误:NotImplementedError:未为bool数据类型实现运算符“/”
如果您有任何想法,我们将不胜感激。正如Brian所说,您肯定在尝试划分非数字列。下面是一个划分两列以创建第三列的工作示例:
name = ['bob','sam','joe']
age = [25,32,50]
wage = [50000, 75000, 32000]
people = {}
for i in range(0,3):
people[i] = {'name':name[i], 'age':age[i],'wage':wage[i]}
# you should now have a data frame where each row is a person
# you have one string column (name), and two numerics (age and wage)
df = pd.DataFrame(people).transpose()
df['wage_per_year'] = df['wage']/df['age']
print df
其中一列是布尔值。检查df.dytpes,省略非数字的列。谢谢。。。我假设布尔的值为0或1。显然不是。我会尝试将这两列都转换为float,并捕获尝试转换时出现的任何错误。如果Python可以使用浮动模式,那么继续使用分区可能是公平的。这也防止了任何整数除法的怪异。