将字典转换为数据框
Converting dictionary to dataframe
在下面的代码中,我定义了一个字典,然后将其转换为数据框
my_dict = {
'A' : [1,2],
'B' : [4,5,6]
}
df = pd.DataFrame()
df = df.append(my_dict, ignore_index=True)
输出是一个 [1 行 x 2 列] 数据框,看起来像
A B
0 [1,2] [4,5,6]
但是,我想将其重塑为
A B
0 1 4
1 2 5
2 6
我如何为此目的修改代码?
如果您不介意稍微更改一下代码,这将为您提供所需的结果
my_dict = {
'A' : [1,2,''],
'B' : [4,5,6]
}
df = pd.DataFrame(my_dict)
df
您可以按如下方式使用pandas.Series.explode
import pandas as pd
my_dict = {
'A' : [1,2],
'B' : [4,5,6]
}
df = pd.DataFrame()
df = df.append(my_dict, ignore_index=True)
df = df.apply(lambda x:x.explode(ignore_index=True))
print(df)
输出
A B
0 1 4
1 2 5
2 NaN 6
我使用 ignore_index=True
对每一列应用爆炸,以防止重复索引。
试试这个。您需要将字典分配给数据框。我已经 运行 它了。它应该给你你想要的输出。不要使用追加。它是将一个数据帧附加到另一个数据帧
import pandas as pd
my_dict = {
'A' : [1,2,''],
'B' : [4,5,6]
}
df = pd.DataFrame(data=my_dict)
#df = df.append(my_dict, ignore_index=True)
print(df)
另一种方法是:
df = pd.DataFrame.from_dict(my_dict, 'index').T
print(df)
输出:
A B
0 1.0 4.0
1 2.0 5.0
2 NaN 6.0
在下面的代码中,我定义了一个字典,然后将其转换为数据框
my_dict = {
'A' : [1,2],
'B' : [4,5,6]
}
df = pd.DataFrame()
df = df.append(my_dict, ignore_index=True)
输出是一个 [1 行 x 2 列] 数据框,看起来像
A B
0 [1,2] [4,5,6]
但是,我想将其重塑为
A B
0 1 4
1 2 5
2 6
我如何为此目的修改代码?
如果您不介意稍微更改一下代码,这将为您提供所需的结果
my_dict = {
'A' : [1,2,''],
'B' : [4,5,6]
}
df = pd.DataFrame(my_dict)
df
您可以按如下方式使用pandas.Series.explode
import pandas as pd
my_dict = {
'A' : [1,2],
'B' : [4,5,6]
}
df = pd.DataFrame()
df = df.append(my_dict, ignore_index=True)
df = df.apply(lambda x:x.explode(ignore_index=True))
print(df)
输出
A B
0 1 4
1 2 5
2 NaN 6
我使用 ignore_index=True
对每一列应用爆炸,以防止重复索引。
试试这个。您需要将字典分配给数据框。我已经 运行 它了。它应该给你你想要的输出。不要使用追加。它是将一个数据帧附加到另一个数据帧
import pandas as pd
my_dict = {
'A' : [1,2,''],
'B' : [4,5,6]
}
df = pd.DataFrame(data=my_dict)
#df = df.append(my_dict, ignore_index=True)
print(df)
另一种方法是:
df = pd.DataFrame.from_dict(my_dict, 'index').T
print(df)
输出:
A B
0 1.0 4.0
1 2.0 5.0
2 NaN 6.0