Python pandas与spli交换列值

2024-04-26 18:08:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫df,看起来像这样:

TTL1   TTL2   TTL3   TTL4   TTL5
val1   val2   val3   val4   some value
val1   val2   val3   val4   
val1   val2   val3   val4   some more value
val1   val2   val3   val4   some value
val1          val3          val2 val4
val1   val2   val3   val4   some value

说明: 有时TTL2和{}的值跳到TTL5。 所以我要做的是检查TTL2和{}是否为空,如果是,转到TTL5,按(空格)将其拆分,并将每个值放入正确的列中。在

虽然我面临着一些麻烦。。。在

有什么想法吗?在


Tags: dfvaluemoresome空格val1val2val3
1条回答
网友
1楼 · 发布于 2024-04-26 18:08:29

我想有一种更有效的方法来实现这一点(使用pandas矢量化方法之一),但这就是我目前所得到的。只要数据帧不太大,它应该有一个合理的运行时。在

import pandas as pd

df = pd.DataFrame({'TTL2': ['a', None], 'TTL4': ['b', None], 'TTL5': [None, 'a b']})

print(df)

#     TTL2  TTL4  TTL5
#  0     a     b  None
#  1  None  None   a b

for row in df.iterrows():
    index = row[0]
    ttl2_val = row[1].TTL2
    ttl4_val = row[1].TTL4
    if not ttl2_val and not ttl4_val:
        df.ix[index, 'TTL2'], df.ix[index, 'TTL4'] = row[1].TTL5.split()

print(df)

#      TTL2 TTL4  TTL5
#    0    a    b  None
#    1    a    b   a b

相关问题 更多 >