python一括作成変数と値付け操作
簡単な状況:
コアはexec関数で、exec関数は私たちが入力したコード文字列を実行できます。exec関数の簡単な例:
実行結果:
複数のプレースホルダを置換する場合は、このように書くことができます。
例:
pythonでは、順序の変数名を生成し、値を付与します。
抽出:
D:/MyData/Excel/input/MarketHoliday_2018.xls
D:/MyData/Excel/input/MarketHoliday_2019.xls
です。
D:/MyData/Excel/input/MarketHoliday_2023.xls
pythonダイナミックに変数名と割当値を生成します。
今晩データを処理する時偶然に1つの命名の上の難点に出会って、しかし自動処理を実現するために断固として1本の入力のパラメーターに着手しないで、私は必ずそれを解決して、問題はこのようです。
まず一つの方法を呼び出したいです。そして入力した変数は文字列でもいいですが、直接文字列を入力するとだめです。
ここにコードを付けます。
以上は個人の経験ですので、参考にしていただければと思います。
コアはexec関数で、exec関数は私たちが入力したコード文字列を実行できます。exec関数の簡単な例:
exec ('print "hello world"')
hello world
execに文字列「print」「hello world」が入ってきました。execは実行文字列の中のコードprint「hello world」です。この特性から、変数の定義をプレースホルダで実現できます。
exec ("temp%s=1"%1)
このコードはexecにtemp 1=1を実行させるという意味です。文字列の中の%sは‘1’で代用されました。私たちは外でもう一つの循環をすると、複数の変数の定義ができます。
for i in range(10):
exec ("temp%s=1"%i)
ここでは、1サイクルによって10個の変数が生成され、iの変化は0から9までである。変数iで%sを置換するので、毎回の循環の中で、それぞれtemp 0、temp 1に値を割り当てます。実行結果:
複数のプレースホルダを置換する場合は、このように書くことができます。
exec ("temp%s=%d"%(i,i))
ここでは、プレースホルダを文字列、整数の形で置換します。
temp1=1
また、
df_vars = [ 'df_%s_head' %i for i in range(0,10)]
df_vars:
['df_0_head',
'df_1_head',
'df_2_head',
'df_3_head',
'df_4_head',
'df_5_head',
'df_6_head',
'df_7_head',
'df_8_head',
'df_9_head']
たとえば:
for i in range(8):
exec('v' + str(i) + ' = ' + str(i))
print('v' + str(i) + ':', eval('v' + str(i)))
出力結果:例:
pythonでは、順序の変数名を生成し、値を付与します。
a_1 = []
a_2 = []
a_3 = []
.....
a_100 = []
文字列を変数に変換する関数execを利用できます。
for i in range(1,100):
b = 'a_' + str(i)
exec(b + '= %r' % [])
ちょっと複雑なネーミング抽出:
D:/MyData/Excel/input/MarketHoliday_2018.xls
D:/MyData/Excel/input/MarketHoliday_2019.xls
です。
D:/MyData/Excel/input/MarketHoliday_2023.xls
year = [2018,2019,2020,2021,2022,2023]
file_path = 'D:/MyData/Excel/input/MarketHoliday_' # :
まずyearをdictに変えて、Forサイクルの中で使うために、ここでパンdasを使います。
import pandas as pd
year = pd.Series(year)
year_dict = year.to_dict()
取得:
for i in year_dict:
exec('Var_'+str(year_dict[i])+'='+'"'+(file_path + str(year_dict[i])+'.xls'+'"'))
print('Var_'+str(year_dict[i])+':',eval('Var_'+str(year_dict[i])))
最終結果:pythonダイナミックに変数名と割当値を生成します。
今晩データを処理する時偶然に1つの命名の上の難点に出会って、しかし自動処理を実現するために断固として1本の入力のパラメーターに着手しないで、私は必ずそれを解決して、問題はこのようです。
まず一つの方法を呼び出したいです。そして入力した変数は文字列でもいいですが、直接文字列を入力するとだめです。
ここにコードを付けます。
t=['42342lh','234']
s='fgdfhdfhdfh'
exec(s+'=%s'%'t[0]')
print(fgdfhdfhdfh)
for i in range(2):
m=f'names{i}'
exec(m+'=%s'%'t[i]')
print(names1)
mは自分で法則のこのsingを押すことができて、同時に規則的に読み取ることができて、最後に各mは変数になりました。以上は個人の経験ですので、参考にしていただければと思います。