В моем случае он не использовал DataTemplate для ItemsControl.
Old:
<ItemsControl Width="243" ItemsSource="{Binding List, Mode=TwoWay}">
<StackPanel Orientation="Horizontal">
<TextBox Width="25" Margin="0,0,5,0" Text="{Binding Path=Property1}"/>
<Label Content="{Binding Path=Property2}"/>
</StackPanel>
</ItemsControl>
Новое:
<ItemsControl Width="243" ItemsSource="{Binding List, Mode=TwoWay}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBox Width="25" Margin="0,0,5,0" Text="{Binding Path=Property1}"/>
<Label Content="{Binding Path=Property2}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Эта операция фактически предоставляется непосредственно пандами. Просто используйте функцию transpose()
или T
( Справочник ).
Единственная строка, которую вы должны добавить:
df_transposed = df.T
Создание рабочего пространства
import random
import pandas as pd
# your variables
my_names = [2009,2010,2011,2012,2013,2014,2015,2016,2017,2018]
cols = ['link', 'post','shared','timeline','status']
# since we don't have the list of variables in ser, I'm creating it and creating a list of lists of values
ser = []
for x in range(0,len(cols)):
a = [random.uniform(0,1) for _ in range(len(my_names))]
ser.append(a)
# also swapped the pd.concat to create a dataframe as your image-example shows
df = pd.DataFrame(ser, columns=my_names, index = cols)
Решение:
# a simple transpose will do the trick for what you need:
df.T
Как насчет:
df.transpose()
Я думаю, что это должно сделать это. Попробуйте.
Кстати, ваш код для создания dataframe содержит много ошибок, или, может быть, я неправильно его использую.