我有一只看起来像这样的熊猫df:
true
Explnation:
有时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。
所以我想做的是检查TTL4
和TTL2
是否为空,如果是,请转到TTL4
,将其拆分为TTL5
(空格)并放入正确列中的每个值。
虽然我面临着一些麻烦...
请问任何想法?
答案 0 :(得分:3)
我认为有一种更有效的方法(使用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