繁体   English   中英

我如何使用 python 在每一行中循环遍历列

[英]how i can loops thourgh column in each row using python

嘿,伙计,我有一个像这样的 dataframe

empoyees = [('jack', 34, 'Sydney',800) ,
       ('Riti', 31, 'Delhi',800) ,
       ('Aadi', 16, 'New York',800) ,
       ('Mohit', 32,'Delhi',1500) ,
        ]
empDfObj = pd.DataFrame(empoyees, columns=['Name', 'Age', 'City',Salary], index=['a', 'b', 'c', 'd'])

我如何遍历每一行中的列并使用 python 中的 pandas 获得这样的结果。 也许将所有内容添加到每一行的小列表中

a Name jack Age 34 City Sydney Salary 800
b Name Riti Age 31 City Delhi Salary 800
c Name Aadi Age 16 City New York Salary 800
d Name Mohit Age 32 City Delhi Salary 1500

您可以使用DataFrame.to_dict并将 orient 设置为'index'

dict 的 output 将采用以下形式:

{ idx1 : {col1:val1, col2:val2 ... coln:van},
  idx2 : {col1:val1, col2:val2 ... coln:valn},
  ...
}

如果想将它们存储为列表,则遍历 dict 并创建一个字符串列表。

[
    f'{idx} {" ".join([str(v) for t in vals.items() for v in t])}'
    for idx, vals in df.to_dict("index").items()
]

# output
# ['a Name jack Age 34 City Sydney Salary 800',
#  'b Name Riti Age 31 City Delhi Salary 800',
#  'c Name Aadi Age 16 City New York Salary 800',
#  'd Name Mohit Age 32 City Delhi Salary 1500']

如果您只想打印它们,则不需要构建字符串列表。 你可以这样做:

for idx, vals in df.to_dict('index').items():
    print(idx, *[v for t in vals.items() for v in t], sep=" ")

#output
# a Name jack Age 34 City Sydney Salary 800
# b Name Riti Age 31 City Delhi Salary 800
# c Name Aadi Age 16 City New York Salary 800
# d Name Mohit Age 32 City Delhi Salary 1500

我保持简单

s=''
for index, row in df.iterrows():

    if index in s:
        pass
    else:
        s+=str(index)
    for key, value in row[:].items():
        s+=" "+ key+" "+str(value)
    print(s)
    s=''

output

a Name jack Age 34 City Sydney Salary 800
b Name Riti Age 31 City Delhi Salary 800
c Name Aadi Age 16 City New York Salary 800
d Name Mohit Age 32 City Delhi Salary 1500

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM