如何遍历pandas DataFrame中的动态行?

问题描述 投票:1回答:1

我有以下数据框,我想动态地迭代所有行,以查找字节并将其转换为浮点数

示例

col1                          col2                        col3
None                          None                        b'R\xb8\x1e%\xda\x16QA'
b'R\xb8\x1e%\xda\x16QA'       b'R\xb8\x1e%\xda\x16QA'     None
None                          None                        None
b'R\xb8\x1e%\xda\x16QA'       None                        None
b'R\xb8\x1e%\xda\x16QA'       None                        b'R\xb8\x1e%\xda\x16QA'

Mi函数字节要浮动

def bytes2float(byte):
    if byte:
        # do stuff

我想遍历所有行,因为DataFrame是动态的目前,我只能静态地执行此操作,因为我知道DataFrame有多少列。

类似的东西

for index, row in mydf.iterrows():
    # print(row['col1'], row['col2'])
    bytes2float(row['col1'])
    bytes2float(row['col2'])
    bytes2float(row['col3'])
    ... 
    ...

有什么想法或建议吗?

python python-3.x pandas
1个回答
0
投票

您可以遍历mydf.columns

for index, row in mydf.iterrows():
    for col in mydf.columns:
        bytes2float(row[col])

如果要在每行的每一列上运行方法bytes2float,则可以使用applymap

示例:

import pandas
import numpy as np
df = pd.DataFrame(np.arange(6).reshape(2,3))
print (df.applymap(lambda x: f"*{x}*"))

输出:

     0    1    2
0  *0*  *1*  *2*
1  *3*  *4*  *5*
© www.soinside.com 2019 - 2024. All rights reserved.