如何动态初始化pandas数据框的列名和列数据

h4cxqtbf  于 2023-09-29  发布在  其他
关注(0)|答案(2)|浏览(133)

我尝试基于列表获取数据,然后将与此列表属性对应的数据添加到下面列表元素Ex名称下的列:

import pandas as pd

lis = {'a', 'b', 'c'}

output_df = pd.DataFrame()
u = 0
for i in lis:
    get_data = download_data_from_csv(xxxxxxxxxxxx_i)
    # Assume get_data is a column array
    output_df.at[u, 'Name'] = i
    output_df['Name'] = get_data
    u = u+1

如何使数据的格式,其中每个属性将有自己的列和它的数据下,同时通过属性列表阅读
预期输出:

a   b   c
1   7   4
6   10  9

a存储为(1,6)B存储为(7,10)c存储为(4,9)

u4dcyp6a

u4dcyp6a1#

明白了,就这么简单:

import pandas as pd

lis = {'a', 'b', 'c'}

output_df = pd.DataFrame()

for i in lis:
    get_data = download_data_from_csv(xxxxxxxxxxxx_i)
    # Assume get_data is a column array
    output_df[i] = get_data
hgqdbh6s

hgqdbh6s2#

Series的形式收集数据,然后使用pd.concat合并它们,最后使用unstack合并第一层(名称为lis)以获得预期的输出:

# Dummy function to simulate downloaded data
def download_data_from_csv(i):
    """Simulate data"""
    d = {'a': [1, 6], 'b': [7, 10], 'c': [4, 9]}
    return d[i]

lis = ['a', 'b', 'c']  # Use a list not a set!
get_data = {i: pd.Series(download_data_from_csv(i)) for i in lis}
output_df = pd.concat(get_data).unstack(level=0)

输出量:

>>> output_df
   a   b  c
0  1   7  4
1  6  10  9

相关问题