如何格式化字符串以在python中放置变量

时间:2019-01-07 19:48:54

标签: python-3.x pandas

我正在尝试读取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()

1 个答案:

答案 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())