0
我似乎無法找到如何在Python 2.7中填寫變量名稱而不是索引。我只能找到其他編程語言的答案。Python 2.7。能夠填寫變量名稱而不是索引號
導入的文件包含多列,但我只想添加在Query函數中定義和要求的列到Data_BM。那麼如何將IlocX視爲一個指數。
即使有更簡單的方法,我只想知道如何將變量放在索引位置上。先謝謝你。
# function for the datafile name
def datafilename():
print "Type the data filename, for example: myfile.csv : \n"
dataname = raw_input()
print dataname, 'Correct? [Y/N]'
yn = raw_input()
if yn == 'Y' or yn == 'y':
return dataname
else:
datafilename()
# function for the column numbers
def query(var):
print 'Type column number for',var,':'
loc = raw_input()
try:
loc = int(loc)
except:
loc = loc
print loc, 'Correct? [Y/N]'
yn = raw_input()
if yn == 'Y' or yn == 'y':
if type(loc) == int:
return loc
elif loc == 'NA' or loc == 'na':
return loc
else:
print 'Please type column as integer value'
query(var)
else:
query(var)
#Ask for column locations
loc1 = query("X")
loc2 = query("Y")
loc3 = query("Z")
loc4 = query("A")
loc5 = query("B")
Iloc1 = int(loc1-1)
Iloc2 = int(loc2-1)
Iloc3 = int(loc3-1)
Iloc4 = int(loc4-1)
Iloc5 = int(loc5-1)
# Asking for data file name
dataname = datafilename()
#Get data
Data_BM = pd.read_csv(dataname)
Data_BM = Data_BM[Iloc1,Iloc2,Iloc3,Iloc4,Iloc5]
我更新了我的文件,我忘了放在查詢函數中。要求用戶填寫例如X的列號。用戶鍵入1,即loc1。 Iloc 1 = 0.所以0是索引號。我怎樣才能讓Iloc1成爲Data_BM = Data_BM [Iloc1,Iloc2,Iloc3,Iloc4,Iloc5]中的索引號,其他賬號的索引號相同。我想要這個的原因是因爲列可能會改變,但我想讓用戶容易。
你是什麼意思「填寫變量名稱而不是索引」?你能提供一個更通用的例子嗎? –
現在我寫了: Data_BM = Data_BM [Iloc1,Iloc2,Iloc3,Iloc4,Iloc5] 因爲Iloc1,Iloc2 ....等在我的情況下是1,2,3,8,9。這將是用戶輸入。但是我想把它作爲索引號,正如我在Data_BM中所做的那樣,但顯然我做錯了,因爲它不能像這樣工作:Data_BM = Data_BM [Iloc1,Iloc2,Iloc3,Iloc4,Iloc5]。 但我怎麼能讓它接受Iloc1,Iloc2 ...等索引 – AlmostGr
我認爲他正在考慮PHP中的'$$ i'這樣的東西。我不認爲這是可能的蟒蛇,不應該。 – Paul