Python的大熊猫交换柱与分
问题描述:
值我有一个熊猫DF,看起来像这样:Python的大熊猫交换柱与分
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
Explnation: 有时TTL2
和TTL4
值跳到TTL5。 所以我想要做的是检查TTL2
和TTL4
是否为空,如果是,请转到TTL5
,将它拆分为(空格),并将每个值放在正确的列中。
虽然我面临着一些麻烦...
有什么想法吗?
答
我想这样做更有效率(使用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
为什么你讨厌帽子? :P – MYGz
@MYGz我觉得帽子不舒服 – DeepSpace