所以,我想把[“Keterangan”]列作为一个变量。该变量取决于此数据帧中可用的每一行的名称。下面是我的数据帧示例
[In] : wokwok2
[Out]:
Keterangan Q1 2019
0 Kas 16525427.0
1 Giro pada bank indonesia 43816214.0
2 Giro pada bank lain pihak ketiga 8788218.0
3 Penempatan pada bank indonesia dan bank lain p... 31345793.0
4 Efek efek yang diperdagangkan pihak ketiga 5710626.0
5 Efek yang dibeli dengan janji dijual kembali 10946883.0
6 Wesel ekspor dan tagihan lainnya pihak ketiga 8551257.0
7 Cadangan kerugian penurunan nilai pada wesel e... -7926.0
8 Tagihan akseptasi pihak ketiga 10814986.0
9 Cadangan kerugian penurunan nilai pada tagihan... -408769.0
10 Tagihan derivatif pihak ketiga 1041939.0
11 Pinjaman yang diberikan pihak ketiga 531319304.0
12 Pinjaman yang diberikan pihak berelasi 936181.0
13 Cadangan kerugian penurunan nilai pada pinjama... -13448901.0
14 Piutang nasabah pihak ketiga 4739000.0
15 Cadangan kerugian penurunan nilai pada piutang... -96874.0
我计划从dict函数开始,根据列['Q1 2020'],将列['Keterangan']作为变量。这是我的步骤
wokwok2_kolomsatu = wokwok2['Keterangan']
wokwok2_kolomdua = wokwok2['Q1 2019']
anjimbanget = wokwok2
import re
def clean(s):
__source__='https://stackoverflow.com/a/3303361/14638425'
s = re.sub('[^0-9a-zA-Z_]', '', s)
s = re.sub('^[^a-zA-Z_]+', '', s)
return s
def is_valid_variable_name(name):
try:
exec(name + '=1')
return True
except :
return False
def row_to_var(wokwok2, wokwok2_kolomsatu, wokwok2_kolom2, space_replace_with=''):
"""
col_a will be used as variable names and col_b as the values
"""
laasu = anjimbanget
laasu[wokwok2_kolomsatu]=laasu[wokwok2_kolomsatu].apply(lambda x:clean(x))
valid =all([is_valid_variable_name(item) for item in list(laasu.iloc[:,0].values)])
if (valid):
laasu_dict=dict(zip(laasu[wokwok2_kolomsatu].values,laasu[wokwok2_kolomdua].values))
for key,val in laasu_dict.items():
try:
exec(key + '='+str(val), globals())
print(key+' variable created')
except Exception as e:
print(e,key)
else:
raise ValueError('one or more of the strings are not valid variable names')
row_to_var(laasu,'Keterangan','Q2_2019')
当我运行它时,它出现在collab输出中的一个问题,即:
/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py in _validate_read_indexer(self, key,
indexer, axis, raise_missing)
1296 if missing == len(indexer):
1297 axis_name = self.obj._get_axis_name(axis)
-> 1298 raise KeyError(f"None of [{key}] are in the [{axis_name}]")
1299
1300 # We (temporarily) allow for some missing keys with .loc, except in
KeyError: "None of [Float64Index([ 16525427.0, 43816214.0, 8788218.0, 31345793.0, 5710626.0,\n
10946883.0, 8551257.0, -7926.0, 10814986.0, -408769.0,\n 1041939.0,
531319304.0, 936181.0, -13448901.0, 4739000.0,\n -96874.0],\n
dtype='float64')] are in the [columns]"
以下是我的愿望,我可以将行字符串称为变量:
[In] : Efekefekyangdiperdagangkanpihakketiga
[Out]: 5710626.0
[In] : Tagihanakseptasipihakketiga
[Out]: 10814986.0
目前没有回答
相关问题 更多 >
编程相关推荐