1 回答

TA貢獻2016條經驗 獲得超9個贊
沒有示例 DataFrame 我不得不詢問你到底想要什么,希望我是對的。
您可以使用簡單的 lambda 函數:
# Import pandas, numpy
import pandas as pd
import numpy as np
# Sample df
d = {'Desc': ['Studio', 'Rooms', 'Studio', 'Studio', 'Studio', 'Rooms','Rooms','Rooms','Studio', 'Rooms']}
df = pd.DataFrame(data=d)
df['Rooms'] = np.nan
# Lambda function
df['Rooms'] = df.apply(
lambda row: 0 if row['Desc'] == 'Studio' else 1,
axis=1
)
或者使用 list + for 循環并將新列添加到您的 df.
# Import pandas, numpy
import pandas as pd
import numpy as np
# Sample df
d = {'Desc': ['Studio', 'Rooms', 'Studio', 'Studio', 'Studio', 'Rooms','Rooms','Rooms','Studio', 'Rooms']}
df = pd.DataFrame(data=d)
# Create empty list for bedroom numbers.
bedrooms = []
# Fill the list with 0/1 base on your Studio/Rooms option.
for i in range(0,len(df.index)):
if df['Desc'].loc[i].lower() == 'studio':
bedrooms.append(0)
else:
bedrooms.append(1)
# Add new column to your DataFrame
df['Rooms'] = np.array(bedrooms)
兩種方式都會在名為“房間”的新列中顯示結果 (0/1)。
如果我沒有正確猜測您的問題,請告訴我。
祝你好運!
添加回答
舉報