![](/img/trans.png)
[英]Python: pandas data frame convert string and values into column category
[英]Convert pandas python data frame column values in place
我有一列正負數,我想將其轉換為0和1的列表。 如果數字為正,則應將其替換為1。如果數字為負或0,則應將其替換為0。我該怎么做?
例如,在R中,我會這樣做:
list = ifelse(list > 0, 1, 0)
您可以返回boolean
值,並使用astype(int)
將它們轉換為1
和0
。
print((df['A'] > 0).astype(int))
例:
df = pd.DataFrame({'A': [1,-1,2,-2,3,-3]})
print(df)
A
0 1
1 -1
2 2
3 -2
4 3
5 -3
print((df['A'] > 0).astype(int))
0 1
1 0
2 1
3 0
4 1
5 0
您可以使用索引器和.loc來更改值,例如
indexer = df[df['col']>0].index
df.loc[indexer] = 1
indexer_2 = df[df['col']<0].index
df.loc[indexer_2] = 0
或者你可以看看numpy.where這樣的
import numpy as np
import pandas as pd
pd.DataFrame(np.where(df>0,1,0),index=df.index)
您可以使用DataFrame.apply
將函數應用於DataFrame.apply
每一行。 例如:
import numpy as np
import pandas as pd
df = pd.DataFrame({'A': [1, -2, 3, -4]})
df['A'] = df.apply(lambda row:np.where(row['A'] > 0, 1, 0), axis=1)
lambda
函數可以用任何函數替換(不必是lambda
),而axis=1
會將函數應用於每一行而不是每一列。
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.