如何在python中的条件下过滤、提取或分组值列表,并与其他两列进行比较
我有一个130万行的熊猫数据框和一组列,如Phone1(电话号码)、销售日期(2015年至2020年)、产品描述(185个独特的产品描述)等等。 现在,我想过滤或提取2020年未购买任何一款产品(产品描述表中的任何一款产品)的完整电话号码列表如何在python中的条件下过滤、提取或分组值列表,并与其他两列进行比较,python,pandas,dataframe,filter,pandas-groupby,Python,Pandas,Dataframe,Filter,Pandas Groupby,我有一个130万行的熊猫数据框和一组列,如Phone1(电话号码)、销售日期(2015年至2020年)、产品描述(185个独特的产品描述)等等。 现在,我想过滤或提取2020年未购买任何一款产品(产品描述表中的任何一款产品)的完整电话号码列表 >>> data.info()** <class 'pandas.core.frame.DataFrame'> Int64Index: 1392125 entries, 0 to 1398844 Data columns (t
>>> data.info()**
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1392125 entries, 0 to 1398844
Data columns (total 25 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Sale_dt 1392125 non-null datetime64[ns]
1 Phone1 1392125 non-null object
2 prod_desc 1392125 non-null object
dtypes: datetime64[ns](1), object(2)
memory usage: 276.1+ MB
所以,我想对那些在2020年没有买过表(prod_desc一栏中的产品之一)但在前几年可能买过任何其他产品的人进行分组、提取或过滤。那没关系
请帮助我解决此问题。您是如何加载/创建此数据帧的?你可能想在电话栏上设置一个字符串数据类型。你好,尼克!我使用pd.read_csv(r“C:…..)加载数据帧。你能帮我转换电话号码部分吗?我有移动电话号码(10位)和固定电话号码(少于10位)。但有些固定电话号码有特殊字符(o44-345688).那么,我如何才能从列中删除这些固定电话号码,然后继续移动电话号码?发布您的CSV示例?显然,这还不够完整,只足以重现问题。
Out[52]:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
1398840 NaN
1398841 NaN
1398842 NaN
1398843 NaN
1398844 NaN
Name: Phone1, Length: 1392125, dtype: object