如何在DataFrame中迭代动态行



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

示例

col1                          col2                        col3
None                          None                        b'Rxb8x1e%xdax16QA'
b'Rxb8x1e%xdax16QA'       b'Rxb8x1e%xdax16QA'     None
None                          None                        None
b'Rxb8x1e%xdax16QA'       None                        None
b'Rxb8x1e%xdax16QA'       None                        b'Rxb8x1e%xdax16QA'

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'])
... 
...

有什么想法或建议吗?

您可以迭代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*

最新更新