Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在循环中创建新列_Python_Loops_Pandas - Fatal编程技术网

Python在循环中创建新列

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

我试图通过划分两列来为每列创建一个新列。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]
获取错误: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可以使用浮动模式,那么继续使用分区可能是公平的。这也防止了任何整数除法的怪异。