从字符串创建一个新列panda。我需要某种可迭代的吗?

时间:2017-06-22 04:25:45

标签: python pandas

好的,这样可行:

import pandas as pd
import numpy as np

ind = [0,1,2]
d = {'col1' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']), 'col2' : pd.Series([5, 6, 7, 8],  index=['a', 'b', 'c', 'd']), 'col3' : pd.Series([9, 10, 11, 12], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print(df)

给出以下内容:

   col1  col2  col3
a     1     5     9
b     2     6    10
c     3     7    11
d     4     8    12

使用数学添加列,这有效:

df['new'] = df['col2'] + df['col3']

给出:

   col1  col2  col3  new
a     1     5     9   14
b     2     6    10   16
c     3     7    11   18
d     4     8    12   20

但这不起作用:

df['new2'] = str(df['col3'])

如果给出这个,这很奇怪:

   col1  col2  col3  new                                             new2
a     1     5     9   14  a     9\nb    10\nc    11\nd    12\nName: col3...
b     2     6    10   16  a     9\nb    10\nc    11\nd    12\nName: col3...
c     3     7    11   18  a     9\nb    10\nc    11\nd    12\nName: col3...
d     4     8    12   20  a     9\nb    10\nc    11\nd    12\nName: col3...

帮助太棒了,谢谢!

2 个答案:

答案 0 :(得分:1)

尝试一次

df['new2'] = df['col3'].astype(str)

答案 1 :(得分:1)

<script src="http://alasql.org/console/alasql.min.js"></script> 
<script src="http://alasql.org/console/xlsx.core.min.js"></script> 

你可以在熊猫中找到很多这样的方法。

https://pandas.pydata.org/pandas-docs/stable/tutorials.html