我的foo
中有一个字符串列DataFrame
。我需要创建一个新列bar
,其值通过一系列字符串处理操作从相应的foo
值派生 - 一堆str.split()
和str.join()
s在这种特殊情况下。
最有效的方法是什么?
答案 0 :(得分:1)
看一下pandas数据帧的矢量化字符串方法。 http://pandas.pydata.org/pandas-docs/dev/text.html#text-string-methods
# You can call whatever vectorized string methods on the RHS
df['bar'] = df['foo']
例如
df = pd.DataFrame(['a c', 'b d'], columns=['foo'])
df['bar'] = df['foo'].str.split(' ').str.join('-')
print(df)
产量
foo bar
0 a c a-c
1 b d b-d
答案 1 :(得分:1)
熊猫可以为你做到这一点。一个简单的例子可能如下:
foo = ["this", "is an", "example!"]
df = pd.DataFrame({'foo':foo})
df['upper_bar'] = df.foo.str.upper()
df['lower_bar'] = df.foo.str.lower()
df['split_bar'] = df.foo.str.split('_')
print(df)
会给你
foo upper_bar lower_bar split_bar
0 this THIS this [this]
1 is an IS AN is an [is an]
2 example! EXAMPLE! example! [example!]
请参阅Alex上面的链接