python:从多个值中选择一列

2024-04-29 13:16:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我只想使用列索引0来放置我的所有dict[值],数据。 但每当我使用多个值,比如“C”,“D”,索引就会增加 我希望在不增加excel索引的情况下垂直添加我的值。 * 我知道我应该更改orient='index'部分以获得所需的输出。 试图寻找这个特定的代码,但我无法。。。有什么帮助吗

android_report_data_set ={
    "A":["APPLE"],
    "B":["KIWI"],
    "C":["MANGOJUICE","WATERMELONJUICE","DURIANJUICE"]}
    "D":["RED","PINK","BLACK"]}

df = pd.DataFrame.from_dict(android_report_data_set, orient='index')

df.transpose()



*EXPECTED OUTPUT

+----+-----------------+
|    |  0              |
+----+-----------------+
| A  | APPLE           |  
| B  | KIWI            |  
| C  | MANGOJUICE      |
|    | WATERMELONJUICE |
|    | DURIANJUICE     |
| D  | RED             |
|    | PINK            |
|    | BLACK           | 
+----+-----------------+

*OUTPUT
+----+------------+---------------------+--------------+
|    | 0          | 1                   | 2            |
+----+------------+---------------------+--------------+
| A  | APPLE      |                     |              |
| B  | KIWI       |                     |              |
| C  | MANGOJUICE | WATERMELONJUICE     | DURIANJUICE  |
| D  | RED        | PINK                | BLACK        |
+----+------------+---------------------+--------------+

谢谢


Tags: reportappledataindexreddictandroidblack
1条回答
网友
1楼 · 发布于 2024-04-29 13:16:22

第一级使用^{}^{}来删除第二级,然后通过^{}将tpo转换为一列DataFrame

df1 = df.stack().reset_index(level=1, drop=True).to_frame()
print (df1)
                 0
A            APPLE
B             KIWI
C       MANGOJUICE
C  WATERMELONJUICE
C      DURIANJUICE
D              RED
D             PINK
D            BLACK

如果只需要索引中的第一个值,则可以将重复的值替换为空字符串:

df1.index = df1.index.where(~df1.index.duplicated(), '')
print (df1)
                 0
A            APPLE
B             KIWI
C       MANGOJUICE
   WATERMELONJUICE
       DURIANJUICE
D              RED
              PINK
             BLACK

上次写入文件index=False时应忽略,以避免删除索引值('A','B','C','D')

df1.to_excel(file)

相关问题 更多 >