我是一个新手,尝试根据特定月份的目录是否存在来填充“月份”下拉列表。
我知道目录名称将是2010年1月,2010年2月,2015年3月等等......
我目前正在使用......
import pandas as pd
df = pd.read_csv('test.csv', sep='\|\|', usecols=[0, 1, 2])
df['avg'] = df.loc[:, ('COL A', 'COL C')].mean(axis=1)
df.to_csv('test2.csv', index=False)
df.to_csv('tes3.csv', index=False, columns='avg')
我怎样才能让这更容易?我只想循环遍历,如果目录存在,则在下拉列表中添加特定名称。
答案 0 :(得分:3)
您可以将月份存储在列表中并对其进行迭代:
List<string> months = new List<string>()
{
"Jan", "Feb", "Mar", "Apr", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"
};
foreach (string month in months)
{
if (System.IO.File.Exists("C:\\Desktop\\Month\\" + month))
{
DropDownList1.Items.Add(month + " 2015");
}
}
或者如果你喜欢Linq:
foreach (string mounth in mounths.Where(mounth => System.IO.Directory.Exists("C:\\Desktop\\Month\\" + mounth)))
{
DropDownList1.Items.Add(mounth + " 2015");
}
如果你想要一些自动的东西:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); // <== Or any culture you like
List<string> monthNames = new List<string>(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.MonthGenitiveNames);
foreach (string month in months)
{
if (System.IO.Directory.Exists("C:\\Desktop\\Month\\" + month))
{
DropDownList1.Items.Add(month + " 2015");
}
}
答案 1 :(得分:1)
另一种方法:
string src = @"C:\Desktop\Month\";
string[] values = { "Jan", "Feb", "March", "Apr", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"};
DropDownList1.Items.AddRange(Directory.GetDirectories(src).Where(d => months.Contains(d.Replace(src, ""))).Select(d => d.Replace(src, "")));
答案 2 :(得分:0)
我想到的一个想法是你可以使用这样的东西
List<String> wehaveadd = new List<String>();
wehaveadd.Add("Jan");
wehaveadd.Add("Feb"); // do all the months
foreach(var item in wehaveadd){
var path = "C:\\Desktop\\Month\\" + item;
if (System.IO.Directory.Exists(path))
{
DropDownList1.Items.Add(item + " 2015");
}
}