【发布时间】:2022-01-06 12:26:02
【问题描述】:
我有一个 CSV 文件目录,其中列出了水果和数量,我想搜索所有这些文件并创建一个仅包含特定水果(例如“苹果”)的新 CSV。
list1.csv
| Name | Qty |
| -------- | --- |
| apple |15 |
| apple |50 |
| mango |20 |
| grapes |49 |
list2.csv
| Name | Qty |
| -------- | --- |
| apple |25 |
| apple |50 |
| Banana |34 |
| mango |20 |
| grapes |49 |
list3.csv
| Name | Qty |
| -------- | --- |
| apple |125 |
| apple |530 |
| mango |20 |
| grapes |49 |
我想要,对于“苹果”:
new.csv
| Name | Qty |
| -------- | --- |
| apple |15 |
| apple |50 |
| apple |25 |
| apple |50 |
| apple |125 |
| apple |530 |
import pandas as pd
import glob, os
path = ("E:/Data/Fdata")
all_files = glob.glob(path + "/*.csv")
li=[]
for filename in all_files:
df=pd.read_csv(filename, index_col=None, header=0)
ndf = df[df["Name"].str.contains("Apple")]
li.append(ndf)
ndf.to_csv("E:/Data/Fdata/onlyapple.csv", index=True)
【问题讨论】:
-
将
ndf.to_csv移到for循环之外。即删除缩进。 -
这种方式也不行
-
什么是“不工作”?提供您的 csv 文件、当前输出和预期输出的示例。
-
list1.csv 苹果 15 500 苹果 50 400 芒果 20 500 葡萄 49 855 list2.csv 苹果 15 500 芒果 20 500 苹果 50 400 芒果 20 500 葡萄 49 855 我想要一个新的.csv想要苹果 15 500 苹果 50 400 苹果 15 500 苹果 50 400
标签: python pandas csv append glob