繁体   English   中英

将 Pandas 数据框列表转换为布尔列

[英]Turn pandas dataframe list into boolean column

我在尝试 .isin() 时遇到了一些意外错误,这是问题所在。 我已经废弃了网络,变成了数据框。 现在我想进行更改以使数据对项目更有用。 从报废的数据中,一列包含所有功能,它在 json 中是一个列表,但在 pd 中,它是一个“非空对象”:

"feature": ["Wi-Fi", "LAN", "LED"]

我想根据每个功能创建新的布尔列,这将有助于今后的工作。 它应该是这样的

Product    Wifi    LAN   LED
1          True    True  True
2          True    False False

我试过str.contains.isin() ,但只有错误。

TypeError: only list-like objects are allowed to be passed to isin(), you passed a [str]
ValueError: Length of values does not match length of index

有什么更好的方法来解决这个问题?

另外,原始数据是日文的,我已经加载了带有“encoding="utf-8”的数据框,如何在 Pandas 中使用 utf8 进行最佳编码?我使用 notepad++ 作为编辑器。

使用applyin是否需要校验值list

df = pd.read_json('sample.json', lines=True, encoding="utf-8")
print (df)
   access  address                     feature        hour        name offday  \
0      30  5-17-62  [Wi-Fi, LAN1, Non-smoking]  9:00〜22:00  CHEZ MADU       -   
1      30  5-17-62  [Wi-Fi, LAN2, Non-smoking]  9:00〜22:00  CHEZ MADU       -   
2      30  5-17-62  [Wi-Fi, LAN3, Non-smoking]  9:00〜22:00  CHEZ MADU       -   

            tel                                     web  
0  042-465-3533  http://www.hakka-group.co.jp/shoplist/  
1  042-465-3533  http://www.hakka-group.co.jp/shoplist/  
2  042-465-3533  http://www.hakka-group.co.jp/shoplist/  

mask = df['feature'].apply(lambda x: 'LAN1' in x)
print (mask)
0     True
1    False
2    False
Name: feature, dtype: bool

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM