Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.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 for循环的输出插入excel列?_Python_Excel - Fatal编程技术网

如何将python for循环的输出插入excel列?

如何将python for循环的输出插入excel列?,python,excel,Python,Excel,我正在尝试使用for循环来填充excel电子表格中目标列中的数据。生成目标列,但来自for循环的信息不会打印到excel文件中 import pandas as pd aasb_scores = pd.read_excel ('/Users/nnamdiokoli/Library/Containers/com.microsoft.Excel/Data/Desktop/AASB Scoring PivotTable Example.xlsx',

我正在尝试使用for循环来填充excel电子表格中目标列中的数据。生成目标列,但来自for循环的信息不会打印到excel文件中

import pandas as pd
aasb_scores = pd.read_excel ('/Users/nnamdiokoli/Library/Containers/com.microsoft.Excel/Data/Desktop/AASB Scoring PivotTable Example.xlsx', 
                             index=False) 

aasb_scores['Average'] = (aasb_scores['Q1'] + 
           aasb_scores['Q2']+ aasb_scores['Q3'] + 
           aasb_scores['Q4'] + aasb_scores['Q5'])/5.00
aasb_scores.head(10)

def finalround():
    for i in aasb_scores['Average']:
        if i >= 3:
            print('Final Round')
        else:
            print('cut')

aasb_scores['Moving on?'] = finalround()

aasb_scores.to_excel('/Users/nnamdiokoli/Library/Containers/com.microsoft.Excel/Data/Desktop/AASB Scoring PivotTable Example.xlsx',
                     index=False)
print()
仅用于在屏幕上显示,不用于放入变量或任何其他位置。
您应该使用
返回“最后一轮”
返回“切割”

但是使用
pandas
时,您应该使用它的函数,而不是
来执行
-loop-ie.
apply()

或使用
lambda缩短

import pandas as pd
import random

df = pd.DataFrame({'Average': [random.randint(0,5) for _ in range(10)]})

df['Moving on?'] = df['Average'].apply(lambda x: 'Final Round' if x>=3 else 'cut')

print(df)

最终,您可以创建具有默认值的列
“继续”
“剪切”
,以及稍后要在其中设置
“最后一轮”

import pandas as pd
import random

df = pd.DataFrame({'Average': [random.randint(0,5) for _ in range(10)]})

df['Moving on?'] = 'cut'

df['Moving on?'][ df['Average'] >= 3 ] = 'Final Round'

print(df)
print()
仅用于在屏幕上显示,不用于放入变量或任何其他位置。您应该使用而不是
返回“最后一轮”
。但是使用
pandas
时,您应该使用它的函数,而不是
来执行
-loop-ie.
apply()
。您的函数可以为列中的所有单元格返回一个值。
import pandas as pd
import random

df = pd.DataFrame({'Average': [random.randint(0,5) for _ in range(10)]})

df['Moving on?'] = 'cut'

df['Moving on?'][ df['Average'] >= 3 ] = 'Final Round'

print(df)