我有一个Pandas数据帧:
type(original)
pandas.core.frame.DataFrame
Run Code Online (Sandbox Code Playgroud)
其中包括系列对象original['user']:
type(original['user'])
pandas.core.series.Series
Run Code Online (Sandbox Code Playgroud)
original['user'] 指向一些dicts:
type(original['user'].ix[0])
dict
Run Code Online (Sandbox Code Playgroud)
每个dict都有相同的键:
original['user'].ix[0].keys()
[u'follow_request_sent',
u'profile_use_background_image',
u'profile_text_color',
u'id',
u'verified',
u'profile_location',
# ... keys removed for brevity
]
Run Code Online (Sandbox Code Playgroud)
以上是user来自tweeter API的推文中字段的一部分(的一部分).我想从这些dicts构建一个数据框.
当我尝试直接创建数据框时,每行只得到一列,此列包含整个dict:
pd.DataFrame(original['user'][:2])
user
0 {u'follow_request_sent': False, u'profile_use_...
1 {u'follow_request_sent': False, u'profile_use_..
Run Code Online (Sandbox Code Playgroud)
当我尝试使用from_dict()创建数据框时,我得到相同的结果:
pd.DataFrame.from_dict(original['user'][:2])
user
0 {u'follow_request_sent': False, u'profile_use_...
1 {u'follow_request_sent': False, u'profile_use_..
Run Code Online (Sandbox Code Playgroud)
接下来我尝试了一个列表理解,它返回了一个错误:
item = [[k, v] for (k,v) in users]
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)
当我从单行创建数据框时,它几乎可以工作:
df = pd.DataFrame.from_dict(original['user'].ix[0])
df.reset_index()
index contributors_enabled created_at default_profile default_profile_image …Run Code Online (Sandbox Code Playgroud) 我PersonDTO班上有财产:
[EmailAddress]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)
它工作正常,除非我想允许空字符串作为我的模型的值,如果我从客户端发送JSON:
{ Email: "" }
Run Code Online (Sandbox Code Playgroud)
我得到了400 bad request答复
{"$id":"1","Message":"The Email field is not a valid e-mail address."}
Run Code Online (Sandbox Code Playgroud)
但是,它允许省略email值:
{ FirstName: "First", LastName: 'Last' }
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
[DataType(DataType.EmailAddress, ErrorMessage = "Email address is not valid")]
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
据我所知,Data Annotations Extensionspack也不允许空字符串.
因此,我想知道是否有一种方法可以自定义标准EmailAddressAttribute以允许空字符串,因此我不必编写自定义验证属性.
基本上需要在wpf中使用treeview控件来实现这样的事情:(随机图片)
http://blogs.msdn.com/blogfiles/delay/SimpleTreeGridUX.png
节点和子节点具有相同标头的位置.
我google了很多,但我对wpf的了解并不是那么好.
这是我的父节点类:
public class Parent : PropertyChangedBase
{
public string ParentName { get; set; }
public BindableCollection<Child> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和孩子:
public class Child : PropertyChangedBase
{
public string ChildName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的xaml树视图:
<TreeView Grid.Row="0" Grid.Column="0" ItemsSource="{Binding Nodes}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type projectModels:Parent}" ItemsSource="{Binding Children}">
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<CheckBox Grid.Column="2"></CheckBox>
<TextBlock Grid.Column="1" Text="{Binding ParentName}">
</TextBlock>
</Grid>
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type projectModels:Child}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ChildName}"></TextBlock> …Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×1
attributes ×1
c# ×1
dataframe ×1
pandas ×1
python ×1
treeview ×1
validation ×1
wpf ×1
xaml ×1