import pandas as pd
inp = [{'c1':10, '10':100, '11':100, '12':100},
{'c1':11,'10':110, '11':100, '12':100},
{'c1':12,'10':120, '11':100, '12':100}] .
df = pd.DataFrame(inp)
10 11 12 c1
0 100 100 100 10
1 110 100 100 11
2 120 100 100 12
Expected Output ::
10 11 12 c1
0 XX 100 100 10
1 110 XX 100 11
2 120 100 XX 12
В основном я хочу перебрать каждую строку и выбрать значение столбца c1 (пример - в первой итерации я получу значение 10), а затем, взяв это значение c1, я хочу изменить значение необработанного[row ['' c1]] в XX (пример - значение, которое мы получили 10, теперь я хочу изменить значение raw ['10 '] на XX
Я пытался:
for row in df.itertuples(index=True, name='Pandas'):
variable=getattr(row, "c1")
df.loc[{variable}]=1
Error what I Am getting is:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-226-e67900963f1d> in <module>
7 for row in df.itertuples(index=True, name='Pandas'):
8 variable=getattr(row, "c1")
----> 9 df.loc[{variable}]=1
10
11 df
/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py in __setitem__(self, key, value)
187 else:
188 key = com.apply_if_callable(key, self.obj)
--> 189 indexer = self._get_setitem_indexer(key)
190 self._setitem_with_indexer(indexer, value)
191
/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py in _get_setitem_indexer(self, key)
173
174 try:
--> 175 return self._convert_to_indexer(key, is_setter=True)
176 except TypeError as e:
177
/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py in _convert_to_indexer(self, obj, axis, is_setter, raise_missing)
1352 kwargs = {'raise_missing': True if is_setter else
1353 raise_missing}
-> 1354 return self._get_listlike_indexer(obj, axis, **kwargs)[1]
1355 else:
1356 try:
/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py in _get_listlike_indexer(self, key, axis, raise_missing)
1159 self._validate_read_indexer(keyarr, indexer,
1160 o._get_axis_number(axis),
-> 1161 raise_missing=raise_missing)
1162 return keyarr, indexer
1163
/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py in _validate_read_indexer(self, key, indexer, axis, raise_missing)
1244 raise KeyError(
1245 u"None of [{key}] are in the [{axis}]".format(
-> 1246 key=key, axis=self.obj._get_axis_name(axis)))
1247
1248 # We (temporarily) allow for some missing keys with .loc, except in
KeyError: "None of [Int64Index([10], dtype='int64')] are in the [index]"