Как распаковать словарь словарей в структурированный DataFrame

Вам необходимо использовать функции shadowView и roundView

shadowView

  • Должен иметь фон color
  • Должно зависеть от roundView
  • Трюк заключается в макете shadowView немного внутри, и его тень должна светиться. Откорректируйте insets так, чтобы shadowView полностью невидимо позади roundView

roundView

  • Должен закрепить подзоны

Код

addSubviews(shadowView, roundView)
roundView.addSubviews(titleLabel, subtitleLabel, imageView)

// need inset
shadowView.pinEdges(view: self, inset: UIEdgeInsets(constraintInsets: 2))
roundView.pinEdges(view: self)

do {
  shadowView.backgroundColor = .white // need background
  let layer = shadowView.layer
  layer.shadowColor = UIColor.black.cgColor
  layer.shadowRadius = 3
  layer.shadowOffset = CGSize(width: 3, height: 3)
  layer.shadowOpacity = 0.7
  layer.shouldRasterize = true
}

do {
  roundView.backgroundColor = .white
  let layer = roundView.layer
  layer.masksToBounds = true
  layer.cornerRadius = 5
}

Или вы можете просто сделать ниже, не указав clipToBounds/maskToBounds

layer.shadowColor = UIColor.gray.cgColor
layer.shadowOffset = CGSize(width: 3, height: 3)
layer.shadowOpacity = 0.8

1
задан lmonty 17 January 2019 в 12:12
поделиться

2 ответа

Вы можете создать новый словарь для каждой строки с извлеченными значениями attributeName и attributeValue и добавить все исходные столбцы с помощью join :

a = [{'attributeName': 'File Discount',
  'attributeType': 'int',
  'attributeValue': '15'},
 {'attributeName': 'Returns',
  'attributeType': 'text',
  'attributeValue': 'Full SOR on all'}]

b = [{'attributeName': 'File',
     'attributeType': 'int',
     'attributeValue': '48'}]

df = pd.DataFrame({'companyName':['Ace','B66ks'],
                   'attributes':[a,b],
                   'id':[130,240]})
print (df)
  companyName                                         attributes   id
0         Ace  [{'attributeName': 'File Discount', 'attribute...  130
1       B66ks  [{'attributeName': 'File', 'attributeType': 'i...  240

L = [{y.get('attributeName'):y.get('attributeValue') for y in v} 
      for k, v in df.pop('attributes').items()]
print (L)
[{'File Discount': '15', 'Returns': 'Full SOR on all'}, {'File': '48'}]

df1 = pd.DataFrame(L, index=df.index).join(df)
print (df1)
  File File Discount          Returns companyName   id
0  NaN            15  Full SOR on all         Ace  130
1   48           NaN              NaN       B66ks  240
0
ответ дан jezrael 17 January 2019 в 12:12
поделиться

есть функция pandas, которую можно использовать в unstack () и stack () кадра данных. Вот ссылка на документацию: https://pandas.pydata.org/pandas-docs/stable/generated/pandas .DataFrame.stack.html

0
ответ дан Prakruti Chandak 17 January 2019 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: