从列表中的子字符串创建新的 pandas 列
Creating new pandas columns from substrings in a list
我在名为 'Features' 的 csv 中有数据,其格式如下:
0 [Shops: Close by, Passing trade: Yes]
1 [Lift: Yes, No of Bedrooms: 1, Bedroom 1 Dims:...
2 [Lift: Yes, No of Bedrooms: 2, Bedroom 1 Dims:...
3 [No of Bedrooms: 4, Bedroom 1 Dims: 4.80 x 5.0...
4 [Finish: Excellent, Airconditioning: Yes, Shop...
...
并想为卧室数量创建新的 pandas 列。
0 [N/A]
1 [1]
2 [2]
3 [4]
4 [N/A]
...
我在 python 中尝试过这样的事情:
csvname['No of Bedrooms'] = [s for s in csvname['Features'] if 'No of Bedrooms' in s]
这没有用。有没有简单的方法可以做到这一点?任何帮助将不胜感激。
你可以试试.str.extract
csvname['No of Bedrooms'] = csvname['Features'].astype(str).str.extract('No of Bedrooms: (\d+)')
print(csvname)
Features No of Bedrooms
0 [Shops: Close by, Passing trade: Yes] NaN
1 [Lift: Yes, No of Bedrooms: 1, Bedroom 1 Dims:... 1
2 [Lift: Yes, No of Bedrooms: 2, Bedroom 1 Dims:... 2
3 [No of Bedrooms: 4, Bedroom 1 Dims: 4.80 x 5.0... 4
4 [Finish: Excellent, Airconditioning: Yes, Shop... NaN
我在名为 'Features' 的 csv 中有数据,其格式如下:
0 [Shops: Close by, Passing trade: Yes]
1 [Lift: Yes, No of Bedrooms: 1, Bedroom 1 Dims:...
2 [Lift: Yes, No of Bedrooms: 2, Bedroom 1 Dims:...
3 [No of Bedrooms: 4, Bedroom 1 Dims: 4.80 x 5.0...
4 [Finish: Excellent, Airconditioning: Yes, Shop...
...
并想为卧室数量创建新的 pandas 列。
0 [N/A]
1 [1]
2 [2]
3 [4]
4 [N/A]
...
我在 python 中尝试过这样的事情:
csvname['No of Bedrooms'] = [s for s in csvname['Features'] if 'No of Bedrooms' in s]
这没有用。有没有简单的方法可以做到这一点?任何帮助将不胜感激。
你可以试试.str.extract
csvname['No of Bedrooms'] = csvname['Features'].astype(str).str.extract('No of Bedrooms: (\d+)')
print(csvname)
Features No of Bedrooms
0 [Shops: Close by, Passing trade: Yes] NaN
1 [Lift: Yes, No of Bedrooms: 1, Bedroom 1 Dims:... 1
2 [Lift: Yes, No of Bedrooms: 2, Bedroom 1 Dims:... 2
3 [No of Bedrooms: 4, Bedroom 1 Dims: 4.80 x 5.0... 4
4 [Finish: Excellent, Airconditioning: Yes, Shop... NaN