pandas结合Excel电子表格

时间:2016-03-11 21:57:11

标签: python excel

我有一个包含许多标签的Excel工作簿。 每个选项卡与其他选项卡具有相同的标头集。 我想将每个选项卡中的所有数据合并到一个数据框中(不重复每个选项卡的标题)。

到目前为止,我已经尝试过了:

import pandas as pd
xl = pd.ExcelFile('file.xlsx')
df = xl.parse()

可以在解析参数中使用某些内容,这意味着"所有电子表格"? 或者这是错误的做法?

提前致谢!

更新:我试过了:

a=xl.sheet_names
b = pd.DataFrame()
for i in a:
    b.append(xl.parse(i))
b

但它不是"工作"。

2 个答案:

答案 0 :(得分:13)

这是一种方法 - 将所有工作表加载到数据框的字典中,然后将字典中的所有值连接到一个数据框中。

import pandas as pd

将sheetname设置为None,以便将所有工作表加载到数据框的dict中 并忽略索引以避免以后重叠值(请参阅@bunji的评论)

df = pd.read_excel('tmp.xlsx', sheetname=None, ignore_index=True)

然后连接所有数据帧

cdf = pd.concat(df.values())

print(cdf)

答案 1 :(得分:0)

public class MainActivity extends AppCompatActivity {

    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = findViewById(R.id.image);

        String urlImg="https://appscp.dansyo.com/apps-upload/da8c2cdaceaf82e9f066264e38750c8e.jpeg";

            new LoadAsync().execute(urlImg);

    }

    public static Bitmap getBitmapFromURL(String src) {
        try {

            URL url = new URL(src);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream input = connection.getInputStream();
            return BitmapFactory.decodeStream(input);

        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

    private class LoadAsync extends AsyncTask<String, Bitmap, Bitmap>{

        @Override
        protected Bitmap doInBackground(String... strings) {
            return getBitmapFromURL(strings[0]);
        }

        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);

            imageView.setImageBitmap(bitmap);
        }
    }
}