【发布时间】:2020-08-15 11:35:22
【问题描述】:
给定以下数据:
data = pd.DataFrame(
dict(
source=["file1", "file1", "file2", "file2"],
variable=["shipp", "carrr", "shipp", "bikee"],
)
)
vals = pd.Series(["ship", "bike"])
看起来像:
source variable
0 file1 shipp
1 file1 carrr
2 file2 shipp
3 file2 bikee
我想创建以下内容:
ship bike
file1 True False
file2 True True
虽然我不知道该怎么做,但我已经尝试了以下方法:
data.groupby("source").apply(
lambda grp: pd.Series([any(grp["variable"].str.contains(v)) for v in vals])
)
这花了我几次,我现在想知道是否有更好的方法。
(欢迎任何帮助编写更好的标题)
【问题讨论】:
标签: python pandas pandas-groupby data-manipulation