gpt4 book ai didi

python - 将数据从数据帧推送到谷歌表

转载 作者:行者123 更新时间:2023-12-04 10:43:11 24 4
gpt4 key购买 nike

我正在尝试使用以下代码将数据推送到我的谷歌工作表中,我如何更改代码以便它打印在基于我创建的标题的正确列的第二行中。

第一个代码:

class Header:
def __init__(self):
self.No_DOB_Y=1
self.No_DOB_M=2
self.No_DOB_D=3
self.Paid_too_much_little=4
self.No_number_of_ins=5
self.No_gender=6
self.No_first_login=7
self.No_last_login=8
self.Too_young_old=9
def __repr__(self):
return str(self.__dict__)

def add_col(self,name):
setattr(self,name,max(anomali_header.__dict__.values())+1)


anomali_header=Header()

代码的第二部分(新):
# No_gender
a = list(df.loc[df['gender'].isnull()]['id'])
#print(a)

cells=sh3.range(1,1,len(a),1)
for i,cell in enumerate(cells):
cell.value=a[i]

sh3.update_cells(cells)

目前它更新为A1单元格....

enter image description here

这就是我本质上想要的

enter image description here

如您所见,代码将结果写入第一个可用单元格 A1,我基本上希望它出现在“No_gender”的 anomali_header 的底部,但我不确定如何链接我的代码的第一部分到代码的第二部分......

多亏了 v25,下面的代码可以工作了,但我不想一一遍历代码,而是想创建一个遍历所有函数的循环

我正在尝试运行下面的代码,但似乎在使用循环时出现错误。

错误:
TypeError: 'list' object cannot be interpreted as an integer

代码:
# No_DOB_Y
a = list(df.loc[df['Year'].isnull()]['id'])

# No number of ins
b = list(df.loc[df['number of ins'].isnull()]['id'])

# No_gender
c = list(df.loc[df['gender'].isnull()]['id'])

# Updating anomalies to sheet
condition = [a,b,c]
column = [1,2,3]

for j in range(column,condition):
cells=sh3.range(2,column,len(condition)+1,column)
for i,cell in enumerate(cells):
cell.value=condition[i]
print('end of check')

sh3.update_cells(cells)

最佳答案

您需要更改 range() parameters :

first_row (int) – Row number

first_col (int) – Row number

last_row (int) – Row number

last_col (int) – Row number

所以像:
cells=sh3.range(2, 6, len(a)+1, 6)
或者您可以将范围作为字符串发出:
cells=sh3.range('F2:F' + str(len(a)+1))
这些数字可能并不完美,但这应该会改变定位。您可能需要稍微调整数字;)

更新 :

I've encountered an error use a loop, updated my original postTypeError: 'list' object cannot be interpreted as an integer


这是因为函数 range您在 for 循环中使用的(不要与 sh3.range 混淆,后者是一个完全不同的函数)需要整数,但您正在传递它的列表。
然而,实现这一点的一种更简单的方法是创建一个元组列表,将字符串映射到列整数,然后基于此进行循环。就像是:
col_map = [ ('Year', 1),
('number of ins', 5),
('gender', 6)
]

for col_tup in col_map:
df_list = list(df.loc[df[col_tup[0]].isnull()]['id'])

cells = sh3.range(2, col_tup[1], len(df_list)+1, col_tup[1])

for i, cell in enumerate(cells)
cell.value=df_list[i]

sh3.update_cells(cells)

关于python - 将数据从数据帧推送到谷歌表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59838206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com