python pandas dataframe:转换列并将其附加到末尾
python pandas dataframe: transform a column and append it to the end
我有以下代码,试图转换列 v2,并添加一个新列:
df = pd.read_csv('test1.csv')
for index, row in df.iterrows():
v4 = myFunction.classify(row['v2'])
row['v4'] = v4
row.append(v4)
然而,row.append(v4)
行不起作用。将 v4 附加到每一行的正确方法是什么?谢谢!
目前,df 看起来像:
v1 v2 v3 result
0 12 Dog 31 0
1 34 Frog 4 1
2 32 Snake 5 1
3 7 Cat 2 0
并且预期的新 df 应该是:
v1 v2 v3 result v4
0 12 Dog 31 0 Mammal
1 34 Eagle 4 1 Bird
2 32 Snake 5 1 Reptile
3 7 Cat 2 0 Mammal
你的函数可以接受一列并输出一列吗?如果是这样,你不需要迭代你的 df。只需传入一列并将输出分配给 v4.
v4 = myFunction.classify(df['v2'])
df['v4'] = v4
如果您的函数需要单独输入,则首先创建列 'v4',然后替换您遍历行的值。同样,您不需要在此处追加。
单个输入案例中的另一个选项是使用 python 内置 map() 将您的函数应用于 df['v2'] 的整个列,然后分配该输出如上
df['v4'] = map(myFunction.classify, df['v2'])
尝试了几种方法,我认为目前效果最好的方法如下:
df['v4'] = df['v2'].apply(myFunction.classify)
我有以下代码,试图转换列 v2,并添加一个新列:
df = pd.read_csv('test1.csv')
for index, row in df.iterrows():
v4 = myFunction.classify(row['v2'])
row['v4'] = v4
row.append(v4)
然而,row.append(v4)
行不起作用。将 v4 附加到每一行的正确方法是什么?谢谢!
目前,df 看起来像:
v1 v2 v3 result
0 12 Dog 31 0
1 34 Frog 4 1
2 32 Snake 5 1
3 7 Cat 2 0
并且预期的新 df 应该是:
v1 v2 v3 result v4
0 12 Dog 31 0 Mammal
1 34 Eagle 4 1 Bird
2 32 Snake 5 1 Reptile
3 7 Cat 2 0 Mammal
你的函数可以接受一列并输出一列吗?如果是这样,你不需要迭代你的 df。只需传入一列并将输出分配给 v4.
v4 = myFunction.classify(df['v2'])
df['v4'] = v4
如果您的函数需要单独输入,则首先创建列 'v4',然后替换您遍历行的值。同样,您不需要在此处追加。
单个输入案例中的另一个选项是使用 python 内置 map() 将您的函数应用于 df['v2'] 的整个列,然后分配该输出如上
df['v4'] = map(myFunction.classify, df['v2'])
尝试了几种方法,我认为目前效果最好的方法如下:
df['v4'] = df['v2'].apply(myFunction.classify)