simple accumulation but keyerror : 0
simple accumulation but keyerror : 0
我有数据集。我想将我的数据保存在 df2 中。
RegionNo
Internet
1
1
1
2
1
3
1
4
2
1
2
2
2
3
预期:
RegionNo
Internet
1
10
2
6
def accu():
k = 0
for i in range(len(df) - 1):
if df.loc[i, "RegionNo"] == df.loc[i + 1, "RegionNo"]:
df2.loc[k, "Internet"] = df2.loc[k, "Internet"] + df.loc[i, "Internet"]
df2.loc[k, "RegionNo"] = df.loc[i, "RegionNo"]
else:
k = k + 1
df2.loc[k, "RegionNo"] = df.loc[i + 1, "RegionNo"]
df2.loc[k, "Internet"] = df2.loc[k, "Internet"] + df.loc[i, "Internet"]
但每次我尝试我的代码时,都会出现 keyError:
键盘错误:0
File "C:/Users/Monet/PycharmProjects/pythonProject1/new_main.py", line 9, in accu
df2.loc[k, "Internet"] = df2.loc[k, "Internet"] + df.loc[i, "Internet"]
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 925, in __getitem__
return self._getitem_tuple(key)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1100, in _getitem_tuple
return self._getitem_lowerdim(tup)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 838, in _getitem_lowerdim
section = self._getitem_axis(key, axis=i)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1164, in _getitem_axis
return self._get_label(key, axis=axis)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1113, in _get_label
return self.obj.xs(label, axis=axis)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py", line 3776, in xs
loc = index.get_loc(key)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
raise KeyError(key) from err
KeyError: 0
你想要:
print(df.groupby('RegionNo').sum())
例如:
from pandas import DataFrame
data = [
{'RegionNo': 1, 'Internet': 1},
{'RegionNo': 1, 'Internet': 2},
{'RegionNo': 1, 'Internet': 3},
{'RegionNo': 1, 'Internet': 4},
{'RegionNo': 2, 'Internet': 1},
{'RegionNo': 2, 'Internet': 2},
{'RegionNo': 2, 'Internet': 3}
]
df = DataFrame(data)
df2 = df.groupby('RegionNo').sum()
print(df2)
结果:
Internet
RegionNo
1 10
2 6
您尚未分享您的创建方式 df2
,但它可能没有您尝试访问的位置,这会导致您询问的错误。 (顺便说一下,如果你真的在问题文本的解释末尾提出一个明确的问题,这会有所帮助,这样人们就不必把它拖出来)。正如上面的代码所示,您也不需要那样访问 df2
。
我有数据集。我想将我的数据保存在 df2 中。
RegionNo | Internet |
---|---|
1 | 1 |
1 | 2 |
1 | 3 |
1 | 4 |
2 | 1 |
2 | 2 |
2 | 3 |
预期:
RegionNo | Internet |
---|---|
1 | 10 |
2 | 6 |
def accu():
k = 0
for i in range(len(df) - 1):
if df.loc[i, "RegionNo"] == df.loc[i + 1, "RegionNo"]:
df2.loc[k, "Internet"] = df2.loc[k, "Internet"] + df.loc[i, "Internet"]
df2.loc[k, "RegionNo"] = df.loc[i, "RegionNo"]
else:
k = k + 1
df2.loc[k, "RegionNo"] = df.loc[i + 1, "RegionNo"]
df2.loc[k, "Internet"] = df2.loc[k, "Internet"] + df.loc[i, "Internet"]
但每次我尝试我的代码时,都会出现 keyError: 键盘错误:0
File "C:/Users/Monet/PycharmProjects/pythonProject1/new_main.py", line 9, in accu
df2.loc[k, "Internet"] = df2.loc[k, "Internet"] + df.loc[i, "Internet"]
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 925, in __getitem__
return self._getitem_tuple(key)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1100, in _getitem_tuple
return self._getitem_lowerdim(tup)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 838, in _getitem_lowerdim
section = self._getitem_axis(key, axis=i)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1164, in _getitem_axis
return self._get_label(key, axis=axis)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1113, in _get_label
return self.obj.xs(label, axis=axis)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py", line 3776, in xs
loc = index.get_loc(key)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
raise KeyError(key) from err
KeyError: 0
你想要:
print(df.groupby('RegionNo').sum())
例如:
from pandas import DataFrame
data = [
{'RegionNo': 1, 'Internet': 1},
{'RegionNo': 1, 'Internet': 2},
{'RegionNo': 1, 'Internet': 3},
{'RegionNo': 1, 'Internet': 4},
{'RegionNo': 2, 'Internet': 1},
{'RegionNo': 2, 'Internet': 2},
{'RegionNo': 2, 'Internet': 3}
]
df = DataFrame(data)
df2 = df.groupby('RegionNo').sum()
print(df2)
结果:
Internet
RegionNo
1 10
2 6
您尚未分享您的创建方式 df2
,但它可能没有您尝试访问的位置,这会导致您询问的错误。 (顺便说一下,如果你真的在问题文本的解释末尾提出一个明确的问题,这会有所帮助,这样人们就不必把它拖出来)。正如上面的代码所示,您也不需要那样访问 df2
。