提问人:Navi Mateo 提问时间:11/16/2023 最后编辑:Navi Mateo 更新时间:11/16/2023 访问量:37
向 for 循环数据帧字典导入添加条件
Add condition to for loop dataframe dictionary import
问:
我目前有一个字典,其中包含 11 个不同大小的导入数据帧。我想添加一个条件,以便我只导入包含一定数量的观测值的数据帧,比如 50k。
import pandas as pd
import numpy as np
import glob
monthly_files = glob.glob("Module 6/data/Month_xx_data/*")
file_name = os.path.basename(monthly_files[0])
monthly_data = {}
for file_path in monthly_files:
month = os.path.basename(file_path)[:-4]
monthly_data[month]=pd.read_csv(file_path)
monthly_data
字典的部分结果:
'{'Month-01': Account_ID Transaction_Timestamp Factor_A Factor_B Factor_C
0 5 2009-01-08T00:16:41Z 2 6 VI
1 16 2009-01-20T22:40:08Z 2 6 VI 2 28 2009-01-19T13:24:55Z 2 6 VI
3 40 2009-01-05T16:10:58Z 2 6 VI
4 62 2009-01-21T19:13:13Z
2 6 VI ... ... ... ... ...
...
54530 144190 2009-01-13T11:53:44Z 2 6 VI
54531 144191 2009-01-01T12:54:50Z 7 6 MC
54532 144200 2009-01-02T19:28:47Z 7 6 MC
54533 164389 2009-01-31T08:57:10Z 7 6 MC
54534 164408 2009-01-31T21:15:56Z 2 6 VI
Factor_D Factor_E Response Transaction_Status Month
0 20 A 1020 批准 Jan 1 20 H 1020 批准 Jan 2 21 NaN 1020 批准 Jan 3 20 H 1020 批准 Jan 4 20 B 1020 批准 Jan
... ...
54530 20 小时 1020 批准 1月 54531 20 NaN 1020 批准 1月 54532 20 MCC 1020 批准 1月 54533 30 MCC 1020 批准 1月 54534 20 小时 1020 批准 1月
[54535 行 x 10 列],
'Month-02': Account_ID Transaction_Timestamp Factor_A Factor_B Factor_C
0 3 2009-02-21T23:23:47Z 2 6 VI
1 7 2009-02-14T11:35:42Z 2 6 VI 2 17 2009-02-04T10:55:54Z 2 6 VI
3 21 2009-02-26T09:33:05Z 2 6 VI
4 24 2009-02-12T10:35:55Z
2 6 VI ... ... ... ...
...
44375 180333 2009-02-20T08:11:51Z 8 18 AX
44376 180334 2009-02-20T08:31:06Z 8 18 AX
44377 180335 2009-02-20T08:31:27Z 10 6 DI
44378 180336 2009-02-20T08:33:28Z 2 6 VI
44379 180338 2009-02-20T08:19:56Z 7 6 MC
Factor_D Factor_E Response Transaction_Status Month
0 20 B 1020 批准 Feb 1 20 C 1020 批准 Feb 2 20 H 1020 批准 Feb
3 20 C 1020 批准 2 月 4 20 G 1020 批准 2 月
... ... ...
44375 20 NaN 1020 批准 2 月 44376 20 NaN 1020 批准 2月 44377 20 NaN 1020 批准 2月 44378 35小时 1020 批准 2月 44379 20 MCP 1020 批准 2月
[44380 行 x 10 列]'
我尝试添加if语句,但无法运行任何内容。我所期望的只是要引入的具有 x 个观测值的数据框。使用上面的两个示例,第 2 个月的结果将被排除在外,因为它低于 50k 个观测值。
答:
我不确定你对if语句的问题是什么,但乍一看,你有没有尝试过以下方法?
import pandas as pd
import numpy as np
import glob
monthly_files = glob.glob("Module 6/data/Month_xx_data/*")
file_name = os.path.basename(monthly_files[0])
monthly_data = {}
for file_path in monthly_files:
month = os.path.basename(file_path)[:-4]
df = pd.read_csv(file_path)
if len(df)> 50000:
monthly_data[month]=df
monthly_data
评论