我有一只熊猫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和TTL4的值跳转到TTL5。因此,我要做的是检查TTL2和TTL4是否为空,如果为空,则转到TTL5,将其除以(空格),并将每个值放入正确的列中。
虽然我面临一些麻烦.
有什么想法吗?
发布于 2016-12-27 12:50:48
我认为有一种更有效的方法(使用一种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 bhttps://stackoverflow.com/questions/41345294
复制相似问题