【问题标题】:How to insert raw array into excell using pandas如何使用熊猫将行数组插入到Excel中
【发布时间】:2022-11-21 03:13:37
【问题描述】:

我正在尝试将数组数据插入到 excel 文件中,我已经完成了,但我需要为数组的每个项目添加一个逗号。

这是我的代码

import numpy as np
import pandas as pd

pd_berat_badan_laki_laki = pd.read_excel("Tabel Antropometri Laki-Laki.xlsx", sheet_name='Berat badan menurut umur')
pd_panjang_badan_laki_laki = pd.read_excel("Tabel Antropometri Laki-Laki.xlsx", sheet_name='Panjang badan menurut umur')

array_berat_laki_min_3SD = pd_berat_badan_laki_laki['-3 SD'].to_numpy()
array_berat_laki_min_2SD = pd_berat_badan_laki_laki['-2 SD'].to_numpy()
array_berat_laki_min_1SD = pd_berat_badan_laki_laki['-1 SD'].to_numpy()
array_berat_laki_min_median = pd_berat_badan_laki_laki['Median'].to_numpy()
array_berat_laki_plus_1SD = pd_berat_badan_laki_laki['+1 SD'].to_numpy()
array_berat_laki_plus_2SD = pd_berat_badan_laki_laki['+2 SD'].to_numpy()
array_berat_laki_plus_3SD = pd_berat_badan_laki_laki['+3 SD'].to_numpy()

array_panjang_badan_laki_min_3SD = pd_panjang_badan_laki_laki['-3 SD'].to_numpy()
array_panjang_badan_laki_min_2SD = pd_panjang_badan_laki_laki['-2 SD'].to_numpy()
array_panjang_badan_laki_min_1SD = pd_panjang_badan_laki_laki['-1 SD'].to_numpy()
array_panjang_badan_laki_min_median = pd_panjang_badan_laki_laki['Median'].to_numpy()
array_panjang_badan_laki_plus_1SD = pd_panjang_badan_laki_laki['+1 SD'].to_numpy()
array_panjang_badan_laki_plus_2SD = pd_panjang_badan_laki_laki['+2 SD'].to_numpy()
array_panjang_badan_laki_plus_3SD = pd_panjang_badan_laki_laki['+3 SD'].to_numpy()

dict_antropometri_berat_laki = {
    '-3 SD':np.array(array_berat_laki_min_3SD), '-2 SD':np.array(array_berat_laki_min_2SD), '-1 SD': np.array(array_berat_laki_min_1SD), 
    'Median':np.array(array_berat_laki_min_median),
    '+1 SD':np.array(array_berat_laki_plus_1SD), '+2 SD':np.array(array_berat_laki_plus_2SD), '+3 SD':np.array(array_berat_laki_plus_3SD)
}

dict_antropometri_panjang_badan_laki = {
    '-3 SD':np.array(array_panjang_badan_laki_min_3SD), '-2 SD':np.array(array_panjang_badan_laki_min_2SD), '-1 SD': np.array(array_panjang_badan_laki_min_1SD), 
    'Median':np.array(array_panjang_badan_laki_min_median),
    '+1 SD':np.array(array_panjang_badan_laki_plus_1SD), '+2 SD':np.array(array_panjang_badan_laki_plus_2SD), '+3 SD':np.array(array_panjang_badan_laki_plus_3SD)
}


df_arr_berat_antropometri_laki = pd.DataFrame([dict_antropometri_berat_laki])
df_arr_panjang_badan_antropometri_laki = pd.DataFrame([dict_antropometri_panjang_badan_laki])

writer_antropometri_laki = pd.ExcelWriter('Tabel Array Antropometri Laki-Laki.xlsx', engine='xlsxwriter')

df_arr_berat_antropometri_laki.to_excel(writer_antropometri_laki, sheet_name='Berat badan menurut umur', index=False)
df_arr_panjang_badan_antropometri_laki.to_excel(writer_antropometri_laki, sheet_name='Panjang badan menurut umur', index=False)

writer_antropometri_laki.save()

结果是这样的

但我需要像这样在我的单元格上的每个数组项的逗号

[2.2, 2.3, 3.4, ...]

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    在将数组分配给字典之前,您可以先进行字符串格式化吗?

    >>> import numpy as np
    >>> a = np.array([1,2,3])
    >>> a_stringified = ', '.join([str(_) for _ in a])
    >>> a_stringified
    '1, 2, 3'
    

    然后分配给它?

    您的代码并不完全是 DRY(它会重复很多次),因此需要大量输入。也许也投资于让事情变得更通用?

    【讨论】:

      猜你喜欢
      • 2020-02-13
      • 2020-12-14
      • 2021-08-02
      • 1970-01-01
      • 2021-09-27
      • 2018-05-24
      • 2020-05-08
      • 1970-01-01
      • 2016-08-08
      相关资源
      最近更新 更多