如何按标头读取csv文件并按标头打印值

时间:2019-08-26 12:29:54

标签: python pandas csv dataframe

我在csv文件下面。如何按标题逐行读取并打印值

EmpId,EmpName,Age
1,X,21
2,Y,22
3,Z,23

我正在尝试运行以下代码并尝试打印所有3列

file = pd.read_csv('File.csv',names=[EmpId,EmpName,Age], delimiter=',')

for line in file:
    EmployeeID = EmpID (I want to assign value of EmpId to this variable )
    print(EmployeeID)

示例:按照我在阅读第一行时要打印EmployeeID = 1的for循环

3 个答案:

答案 0 :(得分:1)

有很多方法

file = pd.read_csv('File.csv',names=['EmpId','EmpName','Age'], delimiter=',')
print(file.EmpId)

如果您想使用循环:

for line in file.values:
    print(line[0])  # 0: EmpId, 1:EmpName, 2:Age ...

for i in file.EmpId:
    print(i)

for i in file.EmpId.values:
    print(i)

答案 1 :(得分:1)

您有几种方法:

  1. 如果您只需要employeeId,则可以执行此操作
for EmployeeID in file.EmpId:
    # EmployeeID contains the id
    ...
  1. 如果要遍历行而不丢失其他列的信息
for index, row in file.iterrows():
    EmployeeID = row["EmpId"]
    # You can access to others columns by row[col]
    ...

但是请记住,一般而言,您不应该遍历所有行,请查看以下讨论:iterrows performance issues。您可能别无选择,只能尝试看看是否可以实现矢量化或使用apply function

示例适用于打印行并执行一些操作:

def rowFunction(row):
    EmployeeId = row["EmpId"]
    print(row)
    ...
    return ...

file.apply(lambda row: rowFunction(row), axis=1)

尽管apply通常用于执行一些计算,并且应该返回一些内容。

答案 2 :(得分:0)

# systemctl show docker --property Environment
Environment=GOTRACEBACK=crash HTTP_PROXY=http://10.10.10.10:8080/ HTTPS_PROXY=http://10.10.10.10:8080/ NO_PROXY= hostname.example.com,172.10.10.10