我正在尝试读取list
中列的唯一值,但是无法正确地将变量变成命令,从而无法正确放置变量。如果我直接运行c_data.ABC.unique()
,那么我会在ABC
列中获得唯一值的列表。请提出问题所在。
import pandas as pd
c_data=pd.read_csv("/home/fileName.csv")
list=['ABC','DEF']
for f in list:
cl="c_data.{}.unique()".format(f)
print(cl)
Output:
c_data.ABC.unique()
c_data.DEF.unique()
答案 0 :(得分:0)
您应明确检查these indexing basic in pandas。因此,关于您的答案,您可以使用方括号[]和字符串列名称来使用最基本的索引,例如c_data ['ABC'],因此您可以像这样进行迭代:
c_data = pd.read_csv("/home/fileName.csv")
list = ['ABC', 'DEF']
for f in list:
print(c_data[f].unique())
如果您想/需要使用格式化方法,则可以将列名替换为格式化的字符串:
c_data = pd.read_csv("/home/fileName.csv")
list = ['ABC', 'DEF']
for f in list:
print(c_data['{0}'.format(f)].unique()])
此外,您可以将括号索引与字符串列表一起使用,这将为您提供另一个DataFrame。然后,您可以遍历DataFrame本身,这将为您提供列名:
c_data = pd.read_csv("/home/fileName.csv")
f_data = c_data[['ABC', 'DEF']]
for f in f_data:
print(f_data[f].unique())