python-3.x - 此等式中的 Lambda 和列表推导
问题描述
我创建了一个数据集,如下所示。
train = pd.DataFrame({'id':[1,2,4],'features':[["A","B","C"],["A","D","E"],["C","D","F"]]})
当我执行以下行时:
train['features_t'] = train["features"].apply(lambda x: " ".join(["_".join(i.split(" ")) for i in x]))
它产生了一个很好的结果。
0 A B C
1 A D E
2 C D F
但是,我对apply中的功能很好奇。它基本上迭代训练数据框的特征列中的值。之后,它拆分 A、B、C 并在没有任何分隔符的情况下重新加入。但是当我尝试逐步执行时,它给了我一个关于拆分功能的错误。
我尝试创建一个 for 循环,然后拆分函数和连接函数,但失败了。
for x in train['feature']:
a = x.split(" ")
............................
它给了我这个
'list' object has no attribute 'split'
我对此的理解可能有什么问题?
解决方案
x 是每一行的列表
如果你打印它:
for x in train['features']:
print(x)
结果将是:
['A', 'B', 'C']
['A', 'D', 'E']
['C', 'D', 'F']
您可以使用以下方法完成连接:
for x in train['features']:
a = ''.join(x)
将打印:ABC ADE CDF
推荐阅读
- javascript - TypeError:无法读取未定义的属性“createContext”
- react-native - React Native DateTimePicker 未在 IOS 中打开
- iot - 使用 AzureIoT 标头为板 NodeMCU 1.0(ESP-12E 模块)编译时出错
- java - 在java中拆分包含@PathVariable和@QueryParameter的URL
- ios - 我遇到了这样的错误,我该如何解决一个变量“b”从未发生突变;考虑更改为“让”常量
- plotly - Plotly - 3D 曲面图
- javascript - 使用 react-redux 和 redux-thunk 加载指示器
- c# - IFormFile 为空
- android - 在 UIManager 中找不到 React Native “RNCSafeAreaView”
- python - 如何在保留其行的数据的同时删除列中的重复值?