在数据帧中循环并赋值

2024-10-04 01:27:03 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是一个非常愚蠢的问题,但我一直在这个网站以及其他网站上搜索,我还没有找到一个有效的答案。我尝试将两个数组相乘,并将值分配给嵌套循环中的二维数组

我有两个变量“汽车”和“报废”。我想将每个元素相乘,创建一个10x10的2D数组

我可以在MATLAB中实现这一点,但我对python还不熟悉,所以我知道我可能没有正确使用Pandas数据帧。我已经试着调试代码,除了数组乘法和分配给2D数组的值之外,所有操作都完全按照它应该的方式运行(创建数据帧、循环等)

我知道这是一个索引错误,我一直收到“IndexError:single positional indexer is out bounds”消息

这是我的密码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

cars = pd.DataFrame([1000,2000,3000,4000,5000,6000,7000,8000,9000,10000])
scrappage = pd.DataFrame([1,.95,.86,.75,.62,.44,.30,.20,.12,.04])
Fleet = pd.DataFrame([])

i=0
j=0

for i in range(0,len(cars)):
    for j in range(0,len(scrappage)):
        Fleet.iloc[i,j]= cars.iloc[i,0] * scrappage.iloc[j,0]
        #This^ line is causing the error.
        j= j+1
    i=i+1

我相信这对大多数人来说可能非常简单,但我正在努力解决Pandas语法。提前感谢您的帮助


Tags: 数据inimportdataframepandasforis网站
1条回答
网友
1楼 · 发布于 2024-10-04 01:27:03

您应该为它指定适当的索引和列,而不是将fleet定义为空数据帧。你可以试试这个:-

import numpy as np
import pandas as pd

cars = pd.DataFrame([1000,2000,3000,4000,5000,6000,7000,8000,9000,10000])
scrappage = pd.DataFrame([1,.95,.86,.75,.62,.44,.30,.20,.12,.04])
fleet =  pd.DataFrame(index=range(len(cars)),columns=range(len(scrappage))) 

i=0
j=0

for i in range(0,len(cars)):
    for j in range(0,len(scrappage)):
        fleet.iloc[i,j]= cars.iloc[i,0] * scrappage.iloc[j,0]
        j= j+1
    i=i+1

相关问题 更多 >