查找数字数据框的数字根

Finding the digital root of a dataframe of numbers

我有一个简单的数字数据框,我想找到它的数字根,也作为数据框

我用于查找数字根的代码是

def digital_root (n):
    ap = 0
    n = abs(int(n))
    while n >= 10:
        n = sum(int(digit) for digit in str(n))
        ap += 1
    return n

我写的代码是

for i in range(0, 24):
    for w in range(0, len(w_24)):
        column = []
        a = w_24.iloc[w:i]
        df = a.to_string()
        x = digital_root(df)
        column.append(x)
    w_dr = pd.DataFrame(list(column.items()), columns = ['i']) 

我收到以下错误:

ValueError: invalid literal for int() with base 10: 'Empty DataFrame\nColumns

关于如何执行此任务有什么建议吗?

谢谢

您的 digital_root 需要一个整数。

你给它一个字符串

df = a.to_string()
x = digital_root(df)

您不是打算改为发送 a = w_24.iloc[w, i] 吗?注意 iloc[w, i] 而不是 iloc[w:i],2 轴索引不是第一个轴的切片