使用从现有列处理的值有效地向Pandas DataFrame添加新列?

时间:2015-03-09 17:49:54

标签: python numpy pandas

我的foo中有一个字符串列DataFrame。我需要创建一个新列bar,其值通过一系列字符串处理操作从相应的foo值派生 - 一堆str.split()str.join() s在这种特殊情况下。

最有效的方法是什么?

2 个答案:

答案 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上面的链接