小编bra*_*dog的帖子

使用python pandas使用新数据框附加现有excel表

我目前有这个代码.它完美地运作.

它循环遍历文件夹中的excel文件,删除前两行,然后将它们保存为单独的excel文件,并将文件作为附加文件保存在循环中.

目前,每次运行代码时附加的文件都会覆盖现有文件.

我需要将新数据附加到已经存在的Excel工作表的底部('master_data.xlsx)

dfList = []
path = 'C:\\Test\\TestRawFile' 
newpath = 'C:\\Path\\To\\New\\Folder'

for fn in os.listdir(path): 
  # Absolute file path
  file = os.path.join(path, fn)
  if os.path.isfile(file): 
    # Import the excel file and call it xlsx_file 
    xlsx_file = pd.ExcelFile(file) 
    # View the excel files sheet names 
    xlsx_file.sheet_names 
    # Load the xlsx files Data sheet as a dataframe 
    df = xlsx_file.parse('Sheet1',header= None) 
    df_NoHeader = df[2:] 
    data = df_NoHeader 
    # Save individual dataframe
    data.to_excel(os.path.join(newpath, fn))

    dfList.append(data) 

appended_data = …
Run Code Online (Sandbox Code Playgroud)

python excel for-loop append pandas

17
推荐指数
4
解决办法
4万
查看次数

从pandas数据帧中的每个单元格中删除列表

我有一个数据框,其中包含许多单个单元格中的列表.有些单元格没有列表,只是字符串,有些只是整数或数字.

我想摆脱数据框中的所有列表(保持列表中的值或字符串).我该怎么做?

下面是两个数据帧,一个是"原始数据",其中包含列表,数字和字符串.第二个是我希望创建的干净数据.

这样做最简单,最有效的方法是什么?

import pandas as pd

#create two dataframes, one called raw, one called end result
#raw data
raw_data = {'Name': [['W1'], ['W3'], ['W2'], ['W1'], ['W2'],['W3'],['G1']],
            'EVENT':['E1', 'E2', 'E3', 'E4', 'E5','E6','E1'],
        'DrillDate': [['01/01/2000'], 23, '04/01/2000', ['05/15/2000'], [''],[''],'02/02/2000']}
dfRaw = pd.DataFrame(raw_data, columns = ['Name','EVENT','DrillDate'])
dfRaw


# cleaned data
clean_data = {'Name': ['W1', 'W3', 'W2', 'W1', 'W2','W3','G1'],
            'EVENT':['E1', 'E2', 'E3', 'E4', 'E5','E6','E1'],
        'DrillDate': ['01/01/2000', 23, '04/01/2000', '05/15/2000', '','','02/02/2000']}
dfEndResult = pd.DataFrame(clean_data, columns = ['Name','EVENT','DrillDate'])
dfEndResult
Run Code Online (Sandbox Code Playgroud)

python list dataframe pandas

5
推荐指数
1
解决办法
2375
查看次数

在特定列(熊猫)中首次出现NaN后删除所有行

我正在尝试在pandas中使用dropna函数.我想将它用于特定列.

如果所有行都具有所有NaN值,我只能弄清楚如何使用它来删除NaN.

我有一个数据框(见下文),我希望在特定列中第一次出现NaN后删除所有行,列"A"

当前代码,仅在所有行值均为NaN时有效.

data.dropna(axis = 0, how = 'all')
data
Run Code Online (Sandbox Code Playgroud)

原始数据帧

    data = pd.DataFrame({"A": (1,2,3,4,5,6,7,"NaN","NaN","NaN"),"B": (1,2,3,4,5,6,7,"NaN","9","10"),"C": range(10)})
    data


    A   B   C
0   1   1   0
1   2   2   1
2   3   3   2
3   4   4   3
4   5   5   4
5   6   6   5
6   7   7   6
7   NaN NaN 7
8   NaN 9   8
9   NaN 10  9
Run Code Online (Sandbox Code Playgroud)

我希望输出看起来像:

    A   B   C
0   1   1   0
1   2   2   1
2   3   3   2 …
Run Code Online (Sandbox Code Playgroud)

python nan pandas

2
推荐指数
1
解决办法
733
查看次数

标签 统计

pandas ×3

python ×3

append ×1

dataframe ×1

excel ×1

for-loop ×1

list ×1

nan ×1