熊猫按分组,按筛选



我有一个数据帧data和一个名为created_atdatetime列和一个称为text的列。我想提取created_at天与输入天匹配的行(来自给定范围(,以及以字母"开头的text值;a";。

我的数据帧很大,所以我想一开始我会按天分组,然后使用分组后的数据帧来过滤每一天和文本。

data.set_index('created_at').groupby(pd.Grouper(freq='D'))

但是,我不知道如何应用最终过滤器。(我也不确定这是否是实现我想要的最佳方式(

我不知道其余的,因为你没有给我们一个简短版本的例子,但我至少可以将输入与列相匹配。

input = input("input datetime :  ")
created_at_column = df.loc[:, created_at] # df is your DataFrame
[x for x in list(created_at_column) if x == input]


正如@HenryEcker所说,很难确定最适合你的选择。我从nltk(小写(中生成1836个2021-05-01和2021-05-31之间的日期和1836个单词

# criteria
input_day = "2021-05-30"
first_letter = "a"
# Pandas to Numpy
created_at = data["created_at"].dt.date.values.astype("datetime64[D]")
text = data["text"].values.astype("<U1")  # keep only the first letter
# Filter
out = data.iloc[np.nonzero((created_at == np.datetime64(input_day))
& (text == first_letter))]
>>> out
created_at            text
1794 2021-05-30 07:54:46.103542234    alienability
1819 2021-05-30 17:43:19.455040872  anthologically
1820 2021-05-30 18:06:51.989100817     appreciativ
1830 2021-05-30 22:02:17.329700272     acoustician
1832 2021-05-30 22:49:22.397820163       afternote

最新更新