[英]How to insert output of a python for loop into an excel column?
我正在嘗試使用 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()
僅用於在屏幕上顯示,而不用於放入變量或任何其他地方。
您應該使用return "Final Round"
並return "cut"
。
但是對於pandas
你應該使用它的函數而不是for
-loop - 即。 apply()
。
import pandas as pd
import random
df = pd.DataFrame({'Average': [random.randint(0,5) for _ in range(10)]})
def finalround(value):
if value >= 3:
return 'Final Round'
else:
return 'cut'
df['Moving on?'] = df['Average'].apply(finalround)
print(df)
或更短的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)
最終您可以創建列'Moving on?'
使用默認值'cut'
和稍后過濾要在其中設置'Final Round'
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.