我有一个数据帧data
和一个名为created_at
的datetime
列和一个称为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