Python 如何添加具有三个不同长度值的列?
嗨,我有三个列表“A”,“B”,“C”,分别包含10,20和30个值。我需要创建一个数据框,如下所示Python 如何添加具有三个不同长度值的列?,python,pandas,dataframe,Python,Pandas,Dataframe,嗨,我有三个列表“A”,“B”,“C”,分别包含10,20和30个值。我需要创建一个数据框,如下所示 Values Type ------ ------ ListA_values A . A . A ListB_Values B .
Values Type
------ ------
ListA_values A
. A
. A
ListB_Values B
. B
.
ListC_Values C
. C
. C
. C
这里的列是值和类型。对不起,我画不出更好的数字。更有效的方法是:
df1 = pd.DataFrame({'Type': ['A']*100})
df1.index = ['ListA_values'] * len(df1)
df2 = pd.DataFrame({'Type': ['B']*75})
df2.index = ['ListB_values'] * len(df2)
df3 = pd.DataFrame({'Type': ['C']*80})
df3.index = ['ListC_values'] * len(df3)
#Concatenate the DataFrames
df=df1.append(df2).append(df3)
df['Values'] = df.index
df=df.reset_index(drop=True)
df=df[['Values','Type']]
df
Out[31]:
Values Type
0 ListA_values A
1 ListA_values A
2 ListA_values A
3 ListA_values A
4 ListA_values A
5 ListA_values A
6 ListA_values A
.. ... ...
252 ListC_values C
253 ListC_values C
254 ListC_values C
如果您有列表,我会创建一个字典,然后使用
pd.concat
+默认的DataFrame
构造函数来创建您的DataFrame
import pandas as pd
# Whatever your values are, whatever the size.
A = ['ListA_values']*40
B = ['ListA_values']*80
C = ['ListA_values']*90
d = {'A': A, 'B': B, 'C': C}
pd.concat([pd.DataFrame(v, columns=['Values']).assign(Type=k) for k,v in d.items()], ignore_index=True)
输出:
如果我有100个“A”值75个“B”值和80个“C”值会怎样?我已经做了更改。你可以完全复制代码。如果答案对你有帮助,你介意接受吗?哈哈,当然可以!:)谢谢!
import pandas as pd
# Whatever your values are, whatever the size.
A = ['ListA_values']*40
B = ['ListA_values']*80
C = ['ListA_values']*90
d = {'A': A, 'B': B, 'C': C}
pd.concat([pd.DataFrame(v, columns=['Values']).assign(Type=k) for k,v in d.items()], ignore_index=True)
Values Type
0 ListA_values A
1 ListA_values A
2 ListA_values A
3 ListA_values A
4 ListA_values A
5 ListA_values A
.. ... ...
206 ListA_values C
207 ListA_values C
208 ListA_values C
209 ListA_values C